首页 > 代码库 > 正则表达式
正则表达式
正则表达式
正则表达式是一个描述字符模式的对象又称正规表示法、常规表示法
正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。
正则表达式的特点是:
1. 灵活性、逻辑性和功能性非常的强;
2. 可以迅速地用极简单的方式达到字符串的复杂控制。
3. 对于刚接触的人来说,比较晦涩难懂。
定义正则表达式
1:普通方式
var reg=/表达式/附加参数
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属性。要匹配圆括号字符,请使用“\(”或“\)”。
案例1:邮政编码的正则表达式
手机号码都是11位,并且第1位都是1
对年龄进行验证,年龄必须在0-120之间
Email地址
身份证号
腾讯QQ号
InternetURL http://www.baidu.com、
/**html**/
<input type="text" id="dd"/>
<button onclick="fun0()">邮编验证</button>
<button onclick="fun1()">手机号验证</button>
<button onclick="fun2()">1-120年龄验证</button>
<button onclick="fun3()">身份证号验证</button>
<button onclick="fun4()">QQ号验证</button>
<button onclick="fun5()">email地址验证</button>
<button onclick="fun6()">InternetURL验证</button>
/**javascript**/
function fun0(){
var v=document.getElementById("dd");
var reg=/^[1-9]\d{5}$/;
alert(reg.test(v.value)) ;
}
function fun1(){
var v=document.getElementById("dd");
var reg=/^[1][358]\d{9}$/;
alert(reg.test(v.value)) ;
}
function fun2(){
var v=document.getElementById("dd");
var reg=/^((([1][0-2]\d){1}|([1-9]\d)){1}|\d){1}$/;
alert(reg.test(v.value)) ;
}
function fun3(){
var v=document.getElementById("dd");
var reg=/^[1-9]\d{5}[1-2]\d{3}[0-1]\d[0-3]\d{4}[0-9X]$/;
alert(reg.test(v.value)) ;
}
function fun4(){
var v=document.getElementById("dd");
var reg=/^[1-9]\d{4,9}$/;
alert(reg.test(v.value)) ;
}
function fun5(){
var v=document.getElementById("dd");
var reg=/^\w{3,}[@]\w{2,}(.com)$/;
alert(reg.test(v.value)) ;
}
function fun6(){
var v=document.getElementById("dd");
var reg=/^(http:)[/]{2}[w]{3}[.]\w{2,}(.com)|(.cn)$/;
alert(reg.test(v.value)) ;
}
正则表达式