网上的正则表达式教程多种多样,不过大多是都是直接贴出来正则的一些语法,可能会让大多数刚刚接触到正则的然摸不着头脑。。。
比如js的 test()方法怎么使用正则表达式那,php那些正则函数怎么使用都是一头雾水。
首先,基础的语法我就不在这里啰嗦了,我就是帮助大家旅顺一下正则的具体使用场景,先来说js简单的表单验证,最常用的也就是test()函数
var a= '1231231';
console.log(/^[\d]+$/gi.test(a)) //true
上面是最简单的验证纯数字字符串的正则
首先来说js的test()函数的使用,简单来说就是 ====》 正则表达式.test(要匹配的字符串)
var a= '1231231';
var b = /^[\d]+$/gi;
console.log(b.test(a)) //true
正则表达式的意思是验证这个字符串是否符合你的要求,符合就是true 不符合就是false 如果你想验证一个字符串不能是纯数字那么就
var a= '1231231';
var b = /^[\d]+$/gi;
console.log(!b.test(a)) //false
函数跟正则的意义明确了 下面让我们来分析下具体的正则
/^[\d]+$/gi
==================================
^
匹配输入字符串的开始位置。如果设置了RegExp对象的Multiline属性,^也匹配“\n”或“\r”之后的位置。
$
匹配输入字符串的结束位置。如果设置了RegExp对象的Multiline属性,$也匹配“\n”或“\r”之前的位置。
+
匹配前面的子表达式一次或多次(大于等于1次)。例如,“zo+”能匹配“zo”以及“zoo”,但不能匹配“z”。+等价于{1,}
\d
匹配一个数字字符。等价于[0-9]
/i (忽略大小写)
/g (全文查找出现的所有匹配字符)
/gi(全文查找、忽略大小写)
/ig(全文查找、忽略大小写)
=======================================
上面的正则可以这样描述:匹配一个数字开头(^) 数字结尾($) 一直是数字并且至少有一个数字的字符串([\d]+)
这样也就是匹配一个全数字的字符串。。。。
如果可以是数字和字母:
/^[\d\w]+$/gi
当然我说的只是简单的例子,有很多复杂的正则还要慢慢的探索。。。这篇帖子也只是一个简简单单的入门,给找不到正则大门的人 指个方向而已。
学习正则主要的就是先把正则的基础知识都捋顺一遍,然后多写多练就ok了
其实正则表达式 就是按照你的规则把 拼接字符串就可以了
写正则的时候 记住:什么东西多少次 然后 拼接上什么东西多少次。。。。就是这个样子
什么东西也就是 : 数字\d 字母\w 汉子[\u4e00-\u9fa5] 任意字符 .
多少次也就是 :最少一次 + 一次或者没有{?} n次{n} n到m次 {n,m} 任意次 *
3个数字2个字母 ==》\d{3}\w{1}
数字开头 数字结尾中间随意===》 ^\d.*\d$ (.*的意思就是匹配任何东西任何次)
http://baike.baidu.com/link?url=eKT61hmyMgAPojdrOyUIXT6eruyowYK4dKOiTBrf-IMigvMYQdYNpOuZiUJPqsepEzVFRFYwzNO7NmPcLsQT-LQ7pHVOcEgfXcPyryuJNC_si_-wc5hB9nnOfWFPVGcYKtGvmH0FoNa9P5yu6JuQba
上面是最好的教程。。。。
=======个人记录========
php匹配中英文数字
$a = preg_match("/^[A-Za-z0-9\x{4e00}-\x{9fa5}]+$/u","as啊df1"); $phonenumber = '13712345678'; if(preg_match("/^1[34578]{1}\d{9}$/",$phonenumber)){ echo "是手机号码"; }else{ echo "不是手机号码"; }js匹配中英文数字
/^[A-Za-z0-9\u4e00-\u9fa5]+$/gi