正则表达式不匹配字母,数字和空格任意组合

这段时间要写一个正则验证用户输入的手机号,要求只要有数字,哪里有空格都给验证通过,但不能有字母,也不能为空,还不能只有空格没有数字。苦思冥想了好久,终于解决了,所以纪录一下,免得被自己差劲的正则搞死。

/^(?!.*[a-zA-Z])\s*\d/
说明一下,正则表达式中有(?=a)和(?!a)来表示我们是否需要匹配某个东西,所以不要字母,就是(?![a-zA-Z]),但是正则匹配总是要有个头或者尾的(不知道这样理解对不对),所以字母前面有任意东西也是应该可以让它通过的,所以--->用.*来表示字母之前可能有其他的字符,为什么还要加^呢,因为如果不加的话,可能匹配到字母之后的这个位置上了就会没有一个头或者尾。好的,到目前为止,/^(?!.*[a-zA-Z])/已经可以做到剔除字母了,但是不输入,或者只输入空格,都是可以通过的。那么在后面再加上,要有数字,和0到多个空格就可以了。所以得---> /^(?!.*[a-zA-Z]\s*\d)/
阅读更多
个人分类: IT技能
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

正则表达式不匹配字母,数字和空格任意组合

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭