我爱编程

js 正则表达式

2018-04-16  本文已影响0人  super静_jingjing

正则中经常用到的方法

  1. test() :在字符串中查找符合正则的内容,若查找到返回true,反之返回false.
    var str = '123ddd';
    var re = /\d/;
    alert(re.test(str));
    
    结果: true
  2. search() :在字符串搜索符合正则的内容,搜索到就返回出现的位置(从0开始,如果匹配的不只是一个字母,那只会返回第一个字母的位置), 如果搜索失败就返回 -1
        var str = '123ddd';
        var re = /\d/;
        alert(str.search(re));
结果:0
  1. 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/

上一篇下一篇

猜你喜欢

热点阅读