正则表达式

大兔子大兔子 提交于 2020-03-04 15:33:14

~~~~~基本方法:

1.test

正则.test(字符串)//判断字符串是否符合正则,符合返回true 否则返回false

2.search()

字符串.search(正则)

在字符串中搜索符合正则的,有的话返回符合的位置,否则返回-1

3.match()

字符串.match(正则)

在字符串中搜索符合正则的内容,搜索成功返回内容(以数组形式),否则返回null

4.replace()

字符串.replace(正则,替换的字符串)

查询符合正则的字符串,查询成功就替换成对应的字符串,返回替换后的内容

~~~~~常见用某些单词表示一组:

\s空格

\S非空格

\d数字

\D非数字

\w字符(字母 数字 下划线)

\W非字符

~~~~~常见的特殊字符的表示:

g全局查找

i忽略大小写

\转义

^字符串的开始位置

$字符串的结束位置

*任意次数

+大于1次

?0次或者1次

{n}匹配n次

{n,}匹配大于n次

{n,m}匹配大于n次小于m次

|或

[a-b]a到b的范围

[abc]a,b,c中的任意一个

[^abc]除了a,b,c中的任意一个

[^a-z]除了a到z之间的任意一个


(pattern) 
   匹配 pattern 并捕获该匹配的子表达式。可以使用 $0...$9 属性从结果“匹配”集合中检索捕获的匹配。若要匹配括号字符 ( ),请使用“\(”或者“\)”。 

(?:pattern) 
    匹配 pattern 但不捕获该匹配的子表达式,即它是一个非捕获匹配,不存储供以后使用的匹配。这对于用“或”字符 (|) 组合模式部件的情况很有用。例如,与“industry|industries”相比,“industr(?:y| ies)”是一个更加经济的表达式。
 
(?=pattern) 
    执行正向预测先行搜索的子表达式,该表达式匹配处于匹配 pattern 的字符串的起始点的字符串。它是一个非捕获匹配,即不能捕获供以后使用的匹配。例如,“Windows (?=95| 98| NT| 2000)”与“Windows 2000”中的“Windows”匹配,但不与“Windows 3.1”中的“Windows”匹配。预测先行不占用字符,即发生匹配后,下一匹配的搜索紧随上一匹配之后,而不是在组成预测先行的字符后。 

(?!pattern) 
    执行反向预测先行搜索的子表达式,该表达式匹配不处于匹配 pattern 的字符串的起始点的搜索字符串。它是一个非捕获匹配,即不能捕获供以后使用的匹配。例如,“Windows (?!95| 98| NT| 2000)”与“Windows 3.1”中的“Windows”匹配,但不与“Windows 2000”中的“Windows”匹配。预测先行不占用字符,即发生匹配后,下一匹配的搜索紧随上一匹配之后,而不是在组成预测先行的字符后。

例子:

其他的还好,自己看看正则的语法就好了。我这块有一个检测密码强度的正则:

要求是:有数字 字母 特殊字符表示密码的强弱

var strongRegex = new RegExp(/(?=.*[\d]+)(?=.*[a-zA-Z]+)(?=.*[^a-zA-Z\d]+).{8,50}/g);//高 数字字母特殊字符全部符合
var mediumRegex = new RegExp(/(?![\d]+$)(?![a-zA-Z]+$)(?![^\da-zA-Z]+$)[\da-zA-Z\W_]{8,50}/g);//中 数字字母特殊字符符合两个
var weakRegex = new RegExp(/(\d+)|([a-zA-Z]+)|([^\da-zA-Z]+){8,50}/g);//弱 数字字母特殊字符符合其中的一个



/电话
            (function(){
                var tel=$("#tel").val();
                var t=/^1\d{10}$/;
                var bool=t.test(tel);
                console.log(bool);
                $(".tel").text(bool);
            })();
            //邮箱
            (function(){
                var email=$("#email").val();
                console.log(email);
                var te=/^(\d|\a){2,20}@126.com$/;
                var bool=te.test(email);
                console.log(bool);
                $(".email").text(bool);
            })();

 

 

 

 

 

   
   
   
   
   
   
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!