-
正则表达式
- 概念
- 强大的字符串匹配工具,是一种用户写定的计算机能看懂的规则。
- 写法
- js风格(new RegExp('a','i'))--比较符合js使用习惯
- perl风格(/a/i)--是正则的创始语言
- 可用正则的常用函数
- search(找到匹配项出现的位置)
let str='sdasKkdjasjd'; let re1=new RegExp('k') let re2=new RegExp('k','i') //i----忽略大小写 let re3=/k/ let re3=/k/i str.search(re1) //5 str.search(re2) //4 str.search(re3) //5 str.search(re4) //4
- match(提取匹配项)
let str='sdas4kdj56a8sjd'; let re1=/\d/ //\d---数字 let re2=/\d/g //g---全局匹配 let re3=/\d\d/g let re4=/\d+/g //+---量词,任意个 str.match(re1) //4 str.match(re2) //4,5,6,8 str.match(re3) //56 str.match(re4) //4,56,8
-
replace(替换匹配项)
let str='1234abcba4321'; let re1=/a/; let re2=/a/g; str.replace(re1,'9') //12349bcba4321 str.replace(re2,'9') //12349bcb94321
- search(找到匹配项出现的位置)
-
[]--原子表(定义匹配的字符范围)
-
[asf](任选一个即可)
let str='158 136 133 139 137 185 157 13a 13n 187' let re1=/13[35n]/g let re2=/1[589]7/g str.match(re1) //133,13n str.match(re2) //157,187
-
[a-z](选定字符范围)
let str='158 136 133 139 137 185 157 13a 13n 187' let re1=/13[3-7]/g let re2=/13[a-z]/g str.match(re1) //136,133,137 str.match(re2) //13a,13n
-
[^a-z](排除字符范围)
let str='158 136 133 139 137 185 157 13a 13n 187' let re1=/13[^3-7a-z]/g let re2=/1[^38]7/g str.match(re1) //139 str.match(re2) //157
-
-
转义字符
-
.--可表示任意字符(不建议用)
-
\d--数字===[0-9]
-
\w--英文,数字,下划线===[a-z0-9_]
-
\s--空白字符(空格,tab等)
-
\D--除了数字外的任意===[^0-9]
-
\W-- ===[^a-z0-9_]
-
\S--非空白字符
-
-
量词(字符出现个数)
-
{n}--正好出现n次
1[1-9]{2}\d{8} //匹配手机号,第一位是1,第2,3位为1-9之间的数字,后10位为任意数字
-
{n,m}--最少n次,最多m次
[1-9]\d{5,10} //匹配6到11位的qq号
-
{n,}--最少n次,最多无限
-
+--任意次==={1,}
-
?--可以出现亦可以没有,但最多出现一次==={0,1}
(0\d{2,3}-)?[1-9]\d{7} //固定电话的正则,区号可以没有。()是用来分组的
-
*--可以没有也可以有任意位==={0,}
-
以上就是前端能够用到的简单的正则表达式规则,能够解决工作中遇到的90%需要用正则解决的问题。但是剩下的10%才是能够证明你牛逼的工具。所以我还会边学习边编辑一个前端的进阶或者说是更详细的正则学习笔记。