最近因为需要写了几个常用的正则表达式, 分享给大家,有什么问题请指教

// 中国大陆手机号码正则匹配, 不是那么太精细
// 只要是 13,14,15,18 开头的 11 位数字就认为是中国手机号
chinaMobilePattern = `^1[3458][0-9]{9}$`
// 用户昵称的正则匹配, 合法的字符有 0-9, A-Z, a-z, _, 汉字
// 字符 '_' 只能出现在中间且不能重复, 如 "__"
nicknamePattern = `^[a-z0-9A-Z\p{Han}]+(_[a-z0-9A-Z\p{Han}]+)*$`
// 用户名的正则匹配, 合法的字符有 0-9, A-Z, a-z, _
// 第一个字母不能为 _, 0-9
// 最后一个字母不能为 _, 且 _ 不能连续
namePattern = `^[a-zA-Z][a-z0-9A-Z]*(_[a-z0-9A-Z]+)*$`
// 电子邮箱的正则匹配, 考虑到各个网站的 mail 要求不一样, 这里匹配比较宽松
// 邮箱用户名可以包含 0-9, A-Z, a-z, -, _, .
// 开头字母不能是 -, _, .
// 结尾字母不能是 -, _, .
// -, _, . 这三个连接字母任意两个不能连续, 如不能出现 --, __, .., -_, -., _.
// 邮箱的域名可以包含 0-9, A-Z, a-z, -
// 连接字符 - 只能出现在中间, 不能连续, 如不能 --
// 支持多级域名, x@y.z, x@y.z.w, x@x.y.z.w.e
mailPattern = `^[a-z0-9A-Z]+([\-_\.][a-z0-9A-Z]+)*@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)*\.)+[a-zA-Z]+$`

共 3 个回复


jimmykuu

多谢分享,网站使用的七牛云存储由于我使用老的同步工具同步,导致被设置成私有的,markdown转换的js不能访问,从而写入的内容没有转换,因此看不到内容,已经解决。

如果有用户碰到同样的问题,请下载新的同步工具:http://docs.qiniu.com/tools/v6/qrsync.html

# 0

cxh_nuaa_2001

今天搞了个javascript的正则,索性也放上来。javascript 正则表达式匹配用户昵称,要求是只能包含字母(大小写)、数字、汉字、减号 -、下划线 _、小数点 .,并且后面的三个符号(-_.)不能出现在开头和结尾,也不能连续(如不能出现 --,__,..,-_,-.,_.)
/^([a-z0-9A-Z\u4e00-\u9fcc\u3400-\u4db5]|([\ud840-\ud869][\udc00-\udfff])|([\ud869-\ud86d][\udc00-\udfff]))+([\-_\.]([a-z0-9A-Z\u4e00-\u9fcc\u3400-\u4db5]|([\ud840-\ud869][\udc00-\udfff])|([\ud869-\ud86d][\udc00-\udfff]))+)*$/
# 1

cxh_nuaa_2001

怎么自己回复的也不能编辑啊???上面的正则还可以2号平面的两个可以合并,新的如下

/^([a-z0-9A-Z\u4e00-\u9fcc\u3400-\u4db5]|([\ud840-\ud86d][\udc00-\udfff]))+([\-_\.]([a-z0-9A-Z\u4e00-\u9fcc\u3400-\u4db5]|([\ud840-\ud86d][\udc00-\udfff]))+)*$/
# 2