今天和大家分享一些关于正则表达式的知识和在javascript中的应用。正则表达式简单却又不简单,比如以前我的老师给我们讲的时候就说这个东西入门的话二三十分钟就精通了,一旦没有入门那就可几天都补不回来。于是当初就很认真的学习并研究了它。没想到正则表达式不仅代码简洁,而且在实际的操作中为前端工程师们省事了不少。总所周知,用户在浏览页面的时候,唯一和数据打交道的就是表单了,关于表单的验证,其实有很多中方法,接下来,我就会给大家分享两种,一种是普通繁琐的方法,一种是正则表达式,看看它到底能够给表单带来什么样的效果吧。
首先来看一下普通版的:
个人感觉方法太土了,这是刚开始学习的时候做的简单表单效果,没有加CSS样式表。
再看一下升级版的正则表达式:
接下来一起了解一下正则表达式吧。
正则表达式是一个描述字符模式的对象又称正规表示法、常规表示法
正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。
正则表达式的特点是: 1.灵活性、逻辑性和功能性非常的强; 2.可以迅速地用极简单的方式达到字符串的复杂控制。 3.对于刚接触的人来说,比较晦涩难懂。
定义正则表达式 1:普通方式 varreg=/表达式/附加参数 reg.test(v.value)
2:构造函数方式 var reg=new RegExp("表达式","附加参数) var reg=new RegExp("china");
表达式的模式 1:简单模式 var reg=/china/; 2:符合模式 var reg=/^\w+$/; var reg=/^\w+@\w+.[a-zA-Z]{2,3}(.[a-zA-Z]{2,3})?$/;
RegExp对象的方法 exec检索字符中是正则表达式的区配,返回找到的值,并确定其位置 test检索字符串中指定的值,返回true或false exec方法:如果未找到匹配,则返回值为 null;如果找到了匹配,则返回一个结果数组, /…/代表一个模式的开始和结束 ^匹配字符串的开始 $匹配字符串的结束 \s任何空白字符 \S任何非空白字符 \d匹配一个数字字符,等价于[0-9] \D除了数字之外的任何字符,等价于[^0-9] \w匹配一个数字、下划线或字母字符,等价于[A-Za-z0-9_] \W任何非单字字符,等价于[^a-zA-z0-9_] .除了换行符之外的任意字符
{n}匹配前一项n次 {n,}匹配前一项n次,或者多次 {n,m}匹配前一项至少n次,但是不能超过m次 *匹配前一项0次或多次,等价于{0,} +匹配前一项1次或多次,等价于{1,} ?匹配前一项0次或1次,也就是说前一项是可选的,等价于{0,1}
x|y 匹配x或y。
例如,“z|food”能匹配“z”或“food”。“(z|f)ood”则匹配“zood”或“food”。 [xyz] 字符集合。匹配所包含的任意一个字符。例如,“[abc]”可以匹配“plain”中的“a”。 [a-z] 字符范围。匹配指定范围内的任意字符。例如,“[a-z]”可以匹配“a”到“z”范围内的任意小写字母字符。注意:只有连字符在字符组内部时,并且出现在两个字符之间时,才能表示字符的范围; 如果出字符组的开头,则只能表示连字符本身. (pattern) 匹配pattern并获取这一匹配。所获取的匹配可以从产生的Matches集合得到,在VBScript中使用SubMatches集合,在JScript中则使用$0…$9属性。要匹配圆括号字符,请使用“\(”或“\)”。
原文链接:http://blog.sina.com.cn/s/blog_69fd90d10102v0j1.html