js 正则表达式
2018-04-16 本文已影响0人
super静_jingjing
正则中经常用到的方法
- test() :在字符串中查找符合正则的内容,若查找到返回true,反之返回false.
结果: truevar str = '123ddd'; var re = /\d/; alert(re.test(str));
- search() :在字符串搜索符合正则的内容,搜索到就返回出现的位置(从0开始,如果匹配的不只是一个字母,那只会返回第一个字母的位置), 如果搜索失败就返回 -1
var str = '123ddd';
var re = /\d/;
alert(str.search(re));
结果:0
- match() 在字符串中搜索复合规则的内容,搜索成功就返回内容,格式为数组,失败就返回null。
量词:+ 至少出现一次 匹配不确定的次数(匹配就是搜索查找的意思)
全局匹配:g——global(正则中默认,只要搜索到复合规则的内容就会结束搜索 )
var str = '123ddd231';
var re = /\d+/g;
alert(str.match(re));
结果:[123,231]
4.replace() :查找符合正则的字符串,就替换成对应的字符串。返回替换后的内容。
var str = '哈哈,敏感词是哈哈哈,把哈哈屏蔽掉,哈哈哈哈,让你哈哈哈';
var re = /哈+/g;
alert(str.replace(re,"****"));
结果:****,敏感词是****,把****屏蔽掉,****,让你****
中括号的使用
(1) 表示或,凡是出现在中括号中的全是单个字符为单位
[abc]---表示 a或者b或者c
[123 456] --- 表示 1或者2或者3或者空格或者4或者5或者6
var str = '1b2 sha';
var re = /1[abc]2/;
alert(str.match(re));
结果:1b2
(2) 范围
[0-9] 所有数字
[a-z] 所有英文
(3) 排除
[^a] 除了a以外的所有字符
小括号的使用
小括号,叫做分组符
var str = '2018-4-1';
var re1 = /\d-+/g; // 全局匹配数字,横杠,横杠数量至少为1,匹配结果为: 8- 4-
var re1 = /(\d-)+/g; // 全局匹配数字+横杠,数字和横杠整体数量至少为1 8-8-
var re2 = /(\d+)(-)/g; // 全局匹配至少一个数字,匹配一个横杠 匹配结果:2018- 4-
转义字符
\s : 空格
\S : 非空格
\d : 数字
\D : 非数字
\w : 字符 ( 字母 ,数字,下划线_ )
\W : 非字符
.(点)——任意字符
. : 真正的点
\b : 独立的部分 ( 起始,结束,空格 )
\B : 非独立的部分
量词 代表出现的次数
{n,m}:至少出现n次,最多m次
{n,}:至少n次
*:任意次 相当于{0,}
?:零次或一次 相当于{0,1}
+:一次或任意次相当于 {1,}
{n}:正好n次
常用的表单验证:
匹配中文:[\u4e00-\u9fa5] //中文ACALL码的范围
行首行尾空格:/\s|\s/
Email:/\w+@[a-z0-9]+(.[a-z]+){1,3}/
身份证:/[1-9]\d{14}|[1-9]\d{17}|[1-9]\d{16}x/