JS正则表达式
2018-03-21 本文已影响0人
db366da20578
match:把所有匹配的东西,全部提取出来。
i表示:ignore(忽略大小写)
\d: 转义字符,匹配一个数字 = [0-9]
\D:除了[0-9]以外 [^0-9]
\w 英文,数字,下划线,包括[a-z0-9_]
\W [^a-z0-9_]
\s 空白字符
\S ^空
g: global(找到全部)
+:量词,若干个,匹配一串数字(把分开的连在一起,空格可以隔开)
var str="dsf 12 34 dsf23";
var re=/\d+/g; // \d是匹配一个数字,+是匹配一串数字,g找到所有。
alert(str.match(re)); //match()把所有匹配的东西全部提取出来
//12,34,23
replace:替换,配合正则使用
html
<textarea id="text1" rows="5" cols="30"></textarea><br />
<input id="btn1" type="button" value="过滤"/><br />
<textarea id="text2" rows="5" cols="30"></textarea><br />
js
window.onload=function(){
var oTxt1=document.getElementById('text1');
var oTxt2=document.getElementById('text2');
var oBtn=document.getElementById('btn1');
oBtn.onclick=function(){
var re=/北京|上海|深圳/g; //|代表或的意思
oTxt2.value=oTxt1.value.replace(re,'***');
//如果没有写g,replace就只替换一个,而不是多个,这就是配合正则用的好处
};
};
image.png
任意字符:[abc]
例:o[usb]t-----obt、ost、out
.(点)---任意字符(转义字符)
//把html替换成空
window.onload=function(){
var oTxt1=document.getElementById('text1');
var oTxt2=document.getElementById('text2');
var oBtn=document.getElementById('btn1');
oBtn.onclick=function(){
var re=/<[^<>]+>/g; //除了<>外的任意字符
oTxt2.value=oTxt1.value.replace(re,'');
};
};
image.png
{n} 正好出现n次
例:18059006453
[1-9]\d{10} //第一位是从1-9,{10}表示后面还有10位数
{n,m} 最少n次,最多m次
例:QQ号,最少4位,最多10位
[1-9]\d{4,10}
{n,} 最少n次,最多不限
+ {n,} 最少出现一次,最多不限
? 最少0次,最多1次(可有可无),?号写在后面
010-87089891-23917 //010是区号,23917分机号
(0\d{2,3}-)?[1-9]\d{7}(-\d{1,5})? //?前面的可有可无
* 任意次数{0,},基本不用
^非的意思和行首(字符串开头)
$ 行尾(字符串结尾)
re.test():这个方法是检验是否符合正则的规则,这个方法说的是字符串一部分符合要求返回的就是true。
^ 行首(字符串开头)
$ 行尾(字符串结尾)
效验邮箱
邮箱:<input id="text1" type="text"><br>
<input id="btn1" type="button" value="效验邮箱">
window.onload=function(){
var oEmail=document.getElementById('text1');
var oBtn=document.getElementById('btn1');
oBtn.onclick=function(){
var re=/^\w+@[a-z0-9]+\.[a-z0-9]+$/i;
if(re.test(oEmail.value)){
alert("合法邮箱");
}else{
alert("您输入有误");
}
};
};