正则表达式(初级篇)
一、正则表达式的作用
1.正则表达式是描述字符模式的对象。
2.正则表达式用于对字符串模式匹配以及检索替换,是对字符串执行模式匹配的强大工具。
二、正则表达式的语法
var patt=new RegExp(pattern,modifiers);
或者更简单的方式:
var patt=/pattern/modifiers;
pattern(模式) 描述了表达式的模式。
modifiers(修饰符)用于指定全局匹配(g)、不区分大小写(i)的匹配。
三、正则表达式的方法
1.test()方法搜索字符串指定的值,根据结果返回返回真(true)或假(flase)。
1 var str=“hello,world”; 2 var patt=/e/g;//全局匹配e 3 alert(patt.test(str)); // true
2.exec()方法检索字符串中指定值。返回值是被找到的值,若没有发现匹配,则返回null。
1 var str=“hello,world”; 2 var patt=/e/i; 3 alert(patt.exec(str)); //e
四、支持正则表达式的string对象的方法
1.match()方法可在指定字符串内检索指定的值,找到一个或多个正则表达式的匹配,并输出一个数组,如果没有任何的匹配,则返回null。
1 var str=“hello,free”; 2 var patt=/e/gi; 3 alert(str.match(patt)); // e,e,e
2.replace()方法用于在字符串中,用一些字符替换另一些字符,或替换一个与正则表达式相匹配的字符串。
1 var str=“hello,free”; 2 var patt=/e/g; 3 alert(str.replace(patt,””)); // hllo,fr
3.split()方法用于把一个字符串分割成一个字符串数组,需要注意的是,split()方法不会改变原始字符串。
string.split(separator,limit);
separator可选。字符串或者正则表达式,从该参数指定的地方分割string Object。
limit可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会躲雨这个参数指定的数组长度。如果没有设置参数,整个字符串都会被分割,不考虑它的长度。
五、语法与释义
基础语法
”^([]{})$" ==>"开始([包含内容]{长度})结束“
分割语法
[A,H,T,W]包含A或H或T或W字母
等价
? 等价于匹配长度{0,1}
* 等价于匹配长度{0,}
+ 等价于匹配长度{1,}
\d 等价于[0-9]
\w 等价于[A-Za-z0-9]
六、常用运算符
1、^ 以后面指定字符开始
2、() 标记一个字表达式的开始和结束位置
3、[] 包含,用来自定义能够匹配‘多种字符’的表达式
4、[^] 查找任何不再方括号之间的字符
5、{n,m} 匹配长度
6、. 任何单个字符(\.字符点)
7、| 或
8、\ 转义
9、$ 以前面指定的字符结尾
七、贪婪与非贪婪
在使用修饰匹配次数的特殊符号时,有几种表示方式可以使同一个表达式能匹配不同的次数,比如:”{m,n}“,"{m,}","?","*","+",具体的次数随着被匹配的字符串而定。
这种重复匹配不定次数的表达式在匹配过程中,总是尽可能多的匹配。
八、常用实例
1、智能输入数字: ^[0-9]*$
2、智能输入长度为3的字符: ^.{3}$
3、匹配首尾空白字符: ^\s*|\s*$
4、匹配账号是否合法(字母开头,允许5-16字节,允许字母数字下划线): ^[a-zA-Z][a-zA-Z0-9]{4,15}$
 
                    
                 
