正则表达式入门(js例子)

来源:互联网 发布:手机钢琴软件哪个好 编辑:程序博客网 时间:2024/06/12 18:56

网上的正则表达式教程多种多样,不过大多是都是直接贴出来正则的一些语法,可能会让大多数刚刚接触到正则的然摸不着头脑。。。

比如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]

[xyz]
字符集合。匹配所包含的任意一个字符

/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



0 0