目录
十、经常用到的正则表达式(未完待续)
一.和正则相关的方法
1.使用构造函数创建
使用构造函数创建时,会更加灵活,因为参数还可以传递变量
var 变量 = new RegExp('正则表达式') //注意参数是字符串
var 变量 = new RegExp('正则表达式','匹配模式') //注意两个参数都是字符串
匹配模式作为第二个参数,这个参数可以是
- i 忽略大小写,这个值指的是是ignore
- g 全局匹配模式,这个值指的是global
-
有一个算法题求的是一个字符串中某个字符的出现次数,就可以用正则来做 const matchReg = new RegExp(`${key}`, 'ig') //这里的key指的就是某个字符 const matchRes = str.match(matchReg) || [] //这里的str指的是字符串
2.使用正则表达式的格式 “/ /”(使用字面量创建)
一般常用的跟正则相关的方法有 match
、test
和 replace
。
其中 match
,replace
都是字符串上的方法, test
是正则对象上的方法,返回true、false。
1.test() ,一般用于表单验证
(1)正则对象方法,检测测试字符串是否符合该规则,返回true和false,参数(测试字符串)
(2)Boolean =
表达式.test("要验证的内容");
2.replace()
(1)replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串
(2)语法格式:(返回值是新字符串)
需要匹配的对象.replace(正则式/字符串,替换的目标字符)
3.match()
正则表达式的匹配模式支持的2个标志
g
:表示全局模式(global),即模式将被应用于所有字符串而非发现一个而停止
i
:表示不区分大小写(ease-insensitive)模式,在确定匹配想时忽略模式与字符串的大小写
1.返回值,存放匹配结果的数组。如果没有找到匹配的文本就会返回一个null
2.如果正则表达式有g修饰符,所有匹配的值会按照数组格被返回。不会返回下面的捕获组
如果正则表达式没有g修饰符,只有第一个匹配到的值会被返回,同时返回该值的捕获组,包括三个属性:group,index,input
二、匹配单字符
1./string/ 可以匹配具体的一个字符串,比如string
2./[word]/ 这里中括号表示匹配中括号里面word的任意单个字符
3./[a-d]/ 这里可以给出一个范围,代表匹配字母表顺序中a到d中的任意单个字符
4./[1-5]/ 这里代表匹配给出范围中数字1-5
下面对内容进行一个控制台输出
三、正则选项
常用的有(这里支持多个使用,比如全局匹配并忽略大小写/ig)
- i 代表忽略大小写
- m 代表多行匹配
- g- 代表全局匹配
str="hello world1552
四、边界匹配
1. ^ 匹配字符串的开头
2. $ 匹配中字符串的结尾
str="helloworld1552
五、字符匹配
1. . (点) 可以匹配除了换行符外的任意字符
2. \d 可以匹配任意数字
3. \D 可以匹配任意非数字
4. \s 可以匹配任意空白字符
5. \S 匹配任意非空白字符
6. \n 匹配换行
7. \w 可以匹配数字、字母、下划线
具体使用见下str="hello world1552
六、量词匹配
1. * 匹配0次或者多次
2. + 匹配一次或多次
3. ? 匹配0次或1次
4. {3} 匹配3次
5. {2,4} 匹配2/3或4次
6. {2,} 匹配两次或多次
str="hello 15 52
七、分组
()在正则表达式中代表分组,一般在match方法中用来返回全匹配加上多个分组结果,如果使用了g选项,则只能返回全匹配。如果在小括号里使用了’|’,代表或.
八、特殊字符
匹配特殊符号的时候需要加反斜杠
JS中的反斜杠有 ^ \ . * + ? () [ ] {} |
九、取非匹配
在[ ]里面使用 ^,这里就会表示匹配非此符,综上共有两个用途
- 如果用于正则表达式的开头,代表匹配字符串的开头
- 如果用于[ ] 里面,则表示匹配非此符
十、经常用到的正则表达式(未完待续)
1. value.replace(/\s/g,"") //去掉字符串里面的空格
2.value. .replace(/[^\d\s]/g,"") //去掉不是空格和数字的字符 银行卡号电话等数字的格式化
3./[^A-Za-z] //非字母
4.(/^\d{n}$/) //验证n位数字
5.中文字符的正则表达式:[\u4e00-\u9fa5]
6.去除输入的首位空格:str.replace(/(^\s*)|(\s*$)/g, "")