正则表达式(Regular Expression)
正则表达式(Regular Expression)
一、正则表达式是什么?
匹配想要的东西 为什么使用正则表达式:可以 1.测试字符串内的模式 2.替换文本 3.基于模式匹配从字符串中提取字符串
二、.正则表达式的创建
语法: var reg=/内容/修饰词
var reg=new RegExp(pattern,modifiers)
pattern:模式 modifiers:修饰词
方法: test() 验证字符串是否满足正则表达式
exec()
三、字符串的方法
search(/haha/) 根据正则表达式进行查找
replace(/haha/,“hehe”) 根据正则表达式进行查找替换
四、正则语法规则
修饰词
i ignore 匹配时忽略大小写
g global 全局验证
m 验证多行
匹配模式
小括号()
(abc) 查找abc这个单词
(abc|bcd|def) 查找这三个单词其中的一个
中括号[]
[ 12345] 包括12345其中的某一个
[abc] 包括abc其中的某一个
[0-9] 包括所有数字
[a-z] 包括所有小写字母
[A-Z] 包括所有大写字母
[A-z] 包括所有字母,Z-a之间包含一些特殊字符
元字符
. 表示所有的字符,想要验证”."用反斜杠\进行转义
\d 任何数字
\D 任何非数字
\s 空白字符
\S 非空白字符
\w 任何字母,数字,下划线
\W 任何非字母,数字,下划线
量词
^n 匹配开头为n的字符串
n$ 匹配结尾为n的字符串
n+ 匹配一个或多个
n(x) 匹配任何包含x个n的字符串
n(x,y) 匹配任何包含x到n的字符串
n(x,) 匹配至少有x个指定字符
n? 表示有0个或一个指定字符
n* 表示有0个或多个指定字符
例:
1.验证手机号
以1开头,判断第二位可以是3,5,6,7,8,9后面是9位数字
btn1.onclick=function () {
var reg1=/^1[356789]\d{9}$/
var str1=ipt1.value
if(reg1.test(str1)){
alert('成功')
}else{
alert('不成')
}
}
2.正则验证密码
第一个字符是大写字母,最短8位,要求包括字母,数字
btn2.onclick=function () {
var reg2=/^[A-Z][a-zA-Z\d]{7,}$/
var str2=ipt2.value
if(reg2.test(str2)){
alert('成功')
}else{
alert('不成')
}
}
3.正则验证邮箱
邮箱的名字是\w 中间@符号 @符号后面是数 字或者字母 后面.com
btn3.onclick=function () {
var reg3=/^\w+@[0-9a-zA-Z]+(\.com)$/
var str3=ipt3.value
if(reg3.test(str3)){
alert('成功')
}else{
alert('不成')
}
}
4.正则验证身份证号
btn4.onclick=function () {
var reg4=/^\d{6}(19|20)\d{2}(0|1)\d(0|1|2|3)\d{4}(\d|X)$/
var str4=ipt4.value
if(reg4.test(str4)){
alert('成功')
}else{
alert('不成')
}
}
5.能够匹配“go go”和“abc abc”但不能匹配“go abc”的正则
btn5.onclick=function () {
var reg5=/(^\w{2}\s\w{2}$)|(^\w{3}\s\w{3}$)/
var str5=ipt5.value
if(reg5.test(str5)){
alert('成功')
}else{
alert('不成')
}
}