定义正则表达式的 两种方法 第一种普通方式 第二种构造函数方式
var c= / 表达式/附加参数
注意 切记 不要 用引号 把 表达式 括起来 否则 失效
1.
var c=new RegExp(“表达式”,”附加参数”)
附加参数(可以省略)附加参数: g 全局匹配 i不区分大小写 m进行多行匹配
符号 | 描述 | |
---|---|---|
/ 表达式内容 / | 代表开始和结束 | |
^ | 匹配字符串的开始 | |
$ | 匹配字符串的结束 | |
\s | 任何空白字符 | |
\S | 任何非空白字符 | |
\d | 匹配一个数字字符,等价[0-9] | |
\D | 除了数字外的任何字符,等价[^0-9] | |
\w | 匹配一个数字,下划线或字母字符等价于[ A-Za-z0-9_ ] | |
\W | 任何非单字 字符 等价于[^A-Za-z0-9_] | |
. | 除了换行符(\n)之外的任意字符 | |
{n} | 匹配前一项n次 | |
{n,} | 匹配前一项n次,或多次 | |
{n,m} | 匹配前一项至少n此,但是不能超过m次 | |
/* | 匹配前一项0次 以上无限,等价于{0,} | |
+ | 匹配前一项1次 以上无限 等价于{1,} | |
? | 匹配前一项0次或1次,也就是前一项是可选的 等价于{0,1} | |
我们可以用“或”来匹配单个字符多个可能的情况 | ||
[ ] | 字符集合。匹配所包含的任意一个字符 例如, [abc] 可以匹配 “plain” 中的 ‘a’。 | |
[^ ] | 负值字符集合。匹配未包含的任意字符。例如, [^abc] 可以匹配 “plain” 中的’p’。 | |
[ - ] | 字符范围。匹配指定范围内的任意字符。例如,[a-z] 可以匹配 ‘a’ 到 ‘z’ 范围内的任意小写字母字符 | |
[^ - ] | 负值字符范围。匹配任何不在指定范围内的任意字符。例如,[^a-z ] 可以匹配任何不在 ‘a’ 到 ‘z’ 范围内的任意字符 | |
(pattern) | 捕获该匹配的子表达式 比如 ([12] | [34]) 能匹配12 或者34 若要匹配括号字符 ( ),请使用"( )。 |
在js中 使用\ 反斜杠来进行字符转义 将特殊符号作为普通字符来进行匹配 反正只要是需要匹配符号 那么就都加上\ 肯定是没问题的如果想要匹配\ 那么需要\ =\
例如 在正则表达式中的$ 这个是结束符 但是 如果我想在表达式内使用 就可以通过反斜杠来转义
在比如: 点 用来匹配点字符而不是任何字符的通配符
正则表达式中 () [ ] 和 { } 区别
() 是提取子匹配, 比如(1[0-1]|[1-9]) 只能是 11 10 或者 1-9 这些数中一个
如果不使用() 就变成 3位数了 使用了 就只能出一个结果
[ ]是定义匹配的字符串 如[A-Z] 表示字符串要匹配的内容
{ }用来定义匹配长度 如\s{3} 表示匹配三个空格
可以发现没有 并且符合 那么我们可以使用多个表达式的方式来完成
if( pattern_1.test(str) && pattern_2.test(str) &&pattern_3.test(str) ) 下面有介绍test是干嘛的
exec()如果字符串中有匹配的值返回该匹配值,否则返回 null
var qa="asgfsd";
var ss=/fs/;
var qa_1=ss.exec(qa);
alert(qa_1)
test() 从表达式中查询是否有此值 如果有就是true 否则 false
var qa="asgfsd";
var ss_1=/fs/; //不加上^ 和& 就是包含匹配 只要字符串内包含就行
var qa_2=ss_1.test(qa);
alert(qa_2)
JavaScript内 用于正则表达式的 字符串方法
match() 查找字符串里是否有指定的值 找了返回这个值 否则null
var str="my ska cat tjd";
var reg=/cat/;
var result=str.match(reg);
alert(result)
search()查找 字符串里 是否有 指定的值 找了返回这个值的下标(从0开始) 否则-1
var str = "myskacattjd";
var reg = /cat/;
var resul_t = str.search(reg);
alert(resul_t)
正则表达式字符串替换
replace() 如果不加上 g(全局匹配) 就只替换第一个
var st="mhy ad sad sad df dsad df ";
var res=st.replace(/sad/,"huanmin");
alert(res)
加上g后 满足条件 都替换
var st="mhy ad sad sad df dsad df ";
var res_1=st.replace(/sad/g,"huanmin");
alert(res_1)
需要的HTML
<form method="get" action="#" id="myfom">
<input type="text" id="name1"/>
<input type="submit" value="提交" id="sb" />
</form>
须是6个数字 不能是其他任何符号字母等
<script src="./jquery-3.4.1.js"></script>
<script>
$("#myfom").submit(function() {
var c = /^\d{6}$/;
var b = $("#name1").val();
if (c.test(b) == false) {
alert("错误")
return false;
}
return true;
})
</script>
限制手机号必须是1 , 2 ,7开头 必须是数字 11位
<script src="./jquery-3.4.1.js"></script>
<script>
$("#myfom").submit(function() {
var c = /^[137]\d{10}$/;
var b = $("#name1").val();
if (c.test(b) == false) {
alert("错误")
return false;
}
return true;
})
</script>
年龄必须在0-120 之间 包括0和120var c=/^120|(1[0-1]|[1-9])\d|[0-9]$/;
出身日期
必须在 1900-1999 或者 2000 -20009 或者 2010-2020
年 var c=/^((19\d{2})|(200\d)|(2020))$/;
必须在 1-12 或者01-09 11 12
月 var c=/^(0[1-9]|[1-9]|1[0-2])$/;
必须在 1到31日 包括01-09
日 var c=/^((0[1-9]|[1-9])|([1-2]\d|3[0-1]))$/;
年月日合体 1900-2020 1-12 0-31 (分隔符是 - 或 / )
var c=/^((19\d{2})|(200\d)|(201[0-9])|(2020))[-\/](0[1-9]|[1-9]|1[0-2])[-/]((0[1-9]|[1-9])|([1-2]\d|3[0-1]))$/;
邮箱表达式
ashdjkqq@qq.com
或者 sadasf@.asda.com.cn
不能少@ 不能 少点 结尾必须是 3位 或者两位var c=/^\w+\@\w+\.(\w{2,3}|\w{2,3}\.\w{2,3})$/;
简单邮箱 asdas@qq.com
varc=/^\w+\@\w+(\.\w{2,3})$/
以字母开头 用户名由英文字母和数字组成的4-16位字符,
var c=/^[a-zA-Z][a-zA-Z0-9]{3,15}$/;
密码由英文字母和数字组成的4-10位字符
var c=/^[a-zA-Z0-9]{4,10}$/
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<form method="get" action="#" id="myfom">
<input type="text" id="mima" />
<input type="submit" value="提交" id="sb" />
</form>
<script src="./jquery-3.4.1.js"></script>
<script>
function validatePwd(password) {
var number = 0; //数字个数
var letter=0 ; //字母
var character=0; //特殊字符 个数
//不能为空
if(password.trim()===""||password.length==0){
alert("密码不能为空")
return false;
}
//判断是否包含中文
if (password.match(/[\u4E00-\u9FA5]/g)) {
alert("密码不能包含中文")
return false;
}
if(password.match(/[0-9]/g)){ //判断数字
number++;
}
if(password.match(/[a-z]/ig)){// 判断字母 不区分大小写
letter++;
}
if(password.match(/[`~!@#$%^&*,.]/g)){//判断字符
character++;
}
// 密码验证条件
if(password.trim().length<6){//密码长度不能小于6位
return false;
}
if(number < 1){ //密码中必须至少有1个 数字
return false;
}
if(letter < 1){ //密码中至少有1个字母
return false;
}
if(character < 1){ //密码中必须至少有1个 特殊字符
return false;
}
return true;
}
$("#mima").blur(function () {
var pd= validatePwd($(this).val());
if (!pd){
alert("你的密码太过于简单了 请在密码中包含\n ` ~ ! @ # $ % ^ & * , . <br/> 0-9 a-zA-Z <br/>长度不小于6为 ")
return false;
}
})
</script>
</body>
</html>
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/weixin_45203607/article/details/120235645
内容来源于网络,如有侵权,请联系作者删除!