码迷,mamicode.com
首页 > 其他好文 > 详细

正则表达式

时间:2014-11-09 23:37:09      阅读:311      评论:0      收藏:0      [点我收藏+]

标签:http   io   ar   使用   java   sp   on   cti   bs   

正则表达式
正则表达式是一个描述字符模式的对象又称正规表示法、常规表示法
正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。
正则表达式的特点是:
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)) ;
}














 

正则表达式

标签:http   io   ar   使用   java   sp   on   cti   bs   

原文地址:http://www.cnblogs.com/clearl0ve-yuuux1ang/p/4086030.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!