当前位置:  主页 > web前端技术文章 > javascript > js正则表达式规则

js正则表达式规则

发布日期:2019-12-03

正则表达式(RegExp):正则表达式 是一种规则 用来检查当前的字符串 是否符合这个规则

通俗的讲 ,正则表达式 是用来检查 某一串字符中 是否含有某个字符,或者说用来检查

某一串字符串 的格式

比如:常见的用途 用来验证密码的强度、电话号码格式检测、邮箱格式检测 等等

 

正则表达式的两种写法:

对象的写法:  new RegExp("验证的规则""修饰符");

简洁写法:/验证的规则/修饰符

 

解释:

修饰符: 字母不区分大小写

修饰符:  g 全部查找(正常情况下 找到一个以后就停掉了,全部查找就是从头一直找到尾部)

 

正则表达式的常用方法:

1./写你的规则/.test("写你要验证的字符串")

(1)./a/.test("1111a111")  检查字符串"1111a111" 是否含有 a字符 如果有有就返回true 否则就是false

 

2./写你的规则/.exec("写你要验证的字符串")

(1)./a/.exec("1111a111")  检查字符串"1111a111" 是否含有 a字符 如果有有就返回找到a字符 否则就是null

 

正则表达式中括号:

[abc]查找方括号之间的任何字符。

[^abc]查找任何不在方括号之间的字符。

[0-9]    查找任何从 至 的数字。

[a-z]  查找任何从小写 到小写 的字符。

[A-Z]    查找任何从大写 到大写 的字符。

[A-z]   查找任何从大写 到小写 的字符。

[u4e00-u9fa5] 查找中文字符

 

正则表达式量词:

1.字符A+  至少匹配一个字符A,  正常情况下 是贪模式(懒模式:字符A+?

2.字符A*  可以匹配0个或多个   正常情况下 是贪模式(懒模式:字符A*?

3.字符A? 要么0个或一个       是懒模式

4.字符A{n}  匹配字符A正好是n

5.字符A{n,} 匹配字符A至少是n个  正常情况下 是贪模式 (懒模式:字符A{n,}?

6.字符A{n,m} 匹配字符A至少n个 最多 m个  正常情况下是 贪模式(懒模式:字符A{n,m}?)

7.^字符A  匹配字符A是开头的字符

8.字符A$  匹配字符A是结尾的字符

 

贪懒模式:

贪模式:表示尽可能匹配更多的

懒模式表示尽可能匹配更少的  加 ?号就可以变成懒模式

 

正则表达式元字符: 元字符  与 [a-z] 含义是相同 可以理解成简写

d查找数字。

D查找非数字字符

w查找单词字符。 (单词字符包括:a-zA-Z0-9,以及下划线)

W查找非单词字符。(与单词字符相反的就是 非单词字符)

console.log("`1234567890-=qwertyuiop[]sdfghjkl;'zxcvbnm,./~!@#$%^&*()_+{}|:`][';-=+_||.,?水电费·。;【】、|;。、,?*))=-2<>?".match(/W/g));

输出 ["`", "-", "=", "[", "]", ";", "'", ",", ".", "/", "~", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "+", "{", "}", "|", ":", "`", "", "]", "[", "'", ";", "-", "=", "+", "|", "|", ".", ",", "?", "", "", "", "·", "", "", "", "", "", "|", "", "", "", "", "", "*", "", "", "=", "-", "<", ">", "?"]

s查找空白字符。 (空白字符包括 空格符(就空格制表符( ) 回车符( ) 换行符( ) 垂直换行符( ) 换页( )符)

S查找非空白字符。

console.log("234234 23 42 34 sdf sdfsd sdfsdfdsfs".match(/s/g));

输出 [" ", "", "", "", "
", ""];  一共匹配到6个 空白字符

匹配单词边界。(包含单词的开头字母 或 包含单词的结尾字母)

B匹配非单词边界。

console.log("word".match(/w/));  //输出["w"]

console.log("word".match(/wo/)); //输出["wo"]

console.log("word".match(/d/));  //输出["d"]

console.log("word".match(/rd/)); //输出["rd"]

console.log("word".match(/o/));  //输出 null

console.log("word".match(/r/));  //输出 null

元字符用于查找单个字符,不包括换行() 行结束符( )

 

注意:元字符 在 new RegExp()中编写的时候 要加转移,不然可能无效

<script>
    var r=new RegExp("d+");
    console.log(r.exec("1234"));
script>

 

 

正则表达式补充:

1.或:red|green|blue  匹配 red 或 green blue   |  表示或的意思

2.分组:分组:(内容)    正常情况下会匹配两次 第一次是整体第二次是括号内部

   重复分组:-9?  比如  (red)  匹配的就是 redred  表示第一个分组

 

a字符(?!字符b):匹配字符后面 不是字符的字符(注意:只返回前面的a字符)

 

 

a字符(?=b字符):匹配b字符前面的 a字符

 

 

 

a字符(?:字符b)匹配字符b   ,?: 表示不把当前这个 (?:字符b)当成分组

 

 

 

字符串的正则方法:

3.字符串.search(写你要找的字符串 或 正则表达式规则)

 

 

"字符串A".search("字符串B") 表示从字符串A中找字符串B

如果找了了 就返回字符的 序号,如果没有找到就返回 -1

比如:

console.log("abc".search("c")) //输出 2

console.log("abc".search("d")) //输出-1

 

"字符串A".search("正则表达式") 表示从字符串A中找 符合正则表达式的字符

如果找了了 就返回字符的 序号,如果没有找到就返回 -1

比如:

console.log("abc".search(/[b]/)) //输出 1

console.log("abc".search(/[d]/)) //输出-1

 

比如:


4.字符串.match(正则表达式)

match 的功能 是检测字符串中的字符是否有符合正则表达式

如果有 就 返回一个数组 里面包含找到的字符,如果没有就返回null

比如:

console.log("11111111a11111aa111bbb".match(/[a-z]+/g));

输出 ["a", "aa", "bbb"]

 

5.字符串.replace(正则表达式,"写替换成的文本")

replace的功能 就是检测字符串中的字符 是否有与正则表达式匹配的 如果有 就体会替换成其他文本

并生成新的字符串,如果没有 就不替换

比如:console.log("11111111aa11111111111aa22222".replace(/aa/g,"***"))

输出 "11111111**11111111111**22222"

注意:replace正常只替换一次,如果要替换多次 那么在正则的后面需要加g


下一篇:没有了

+相关文章推荐+