1.正则:正确的规则
什么是正则表达式:正则表达式(regular expression)是一个描述字符规则的对象。如:只能出现字母,只能出现数字,前三个必须是数字等。
前端往往有大量的表单数据校验的工作,采用正则表达式会使得数据校验的工作量大大减轻,如邮箱验证,手机号码,等等。比起用字符串的函数来判断简单,易用。
正则表达式的组成:普通字符和特殊字符。
2.定义:
1.字面量
var reg=/普通字符和特殊字符/修饰符
2.构造方法
var reg =new RegExp("a","i")
console.log(reg.text("a"))
正则中的特殊字符:
单字符:
^ :正则开始
$ :正则结束
. :元字符,表示任意一个字符
\. :表示转义字符 \.表示
+ :表示其前面紧挨着的字符至少出现1次,等价于{1,}
* :表示其前面出现的字符至少出现过0次,等价于{0,}
?:表示其前面出现的字符至少出现过0次,最多出现过1次 等价于{0,1}
| :表示或者
组合字符:
\d:0-9之间的任意一个数字\d只占一个位置
\D:除了\d
\w: 数字,字母,下划线 0-9,a-z,A-Z
\W:除了\w
\s:空格或者空白等
\s:除了\s
括号:
{n,m}:表示括号前面紧挨着的字符至少出现n个,最多出现m个
例:以b开头至少3个a最多5个a/^ba{3,5}$/
{m}: 表示括号前面紧挨着的字符至少出现m个
[]:表示括号内的任意一个字符
[a-z]:表示任意一个小写字母
[^]:表示非括号内的任意一个字符
():一般与或连用 表示优先级
[\u4e00-\u9fa5]任意一个中文字符
正则中的相关方法和属性
test():检验某个字符串是否符合某个正则规范,如果符合则为true,不符合则为false
用法:reg.test(str)
exec 根据正则表达式查找,结果满足,会返回一个长度为1的数组(数组只有一个值)
用法:reg.exec(str)
lastIndex :这个属性记录的就是下一次捕获从哪个索引开始。
var reg = /\d/g;
var str = "92a345a678a9";
console.log(reg.exec(str));
console.log(reg.lastIndex);
正则中相关字符串的方法:
search方法 返回与正则表达式查找内容匹配的第一个子字符串的位置
用法:str.search(reg)
说明:如果找到则返回子字符至开始处的偏移位,否则返回-1。
match 方法
使用正则表达式模式对字符串执行查找,并将包含查找的结果作为数组返回。
str.match(rgExp)
var reg = /\d+/g;
var str = "123a4356a987";
console.log(str.match(reg));
replace 方法
返回根据正则表达式进行文字替换后的字符串的复制。
stringObj.replace(rgExp, replaceText)
var reg = /laowang/g;
var str = "laowang的隔壁也住着laowang";
console.log(str.replace(reg,"dahuang"));