多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[TOC] ## 1.备选字符集:规定某[一位字符]()的`备选`字符列表 >特点:必须且只能多选一 ~~~ eg:上天,上海 上[天海] ~~~ 将字符串中的上海,上天两个字符换成** ~~~ var str ="上海,上天,上去,上哪" var reg =/上[海天]/g; console.log(str.replace(reg,"**")); ~~~ ### 1.1备选字符的unicode号连续 * * * * * ~~~ //一个数字 [0-9]//一个小写字母 [a-z]//一个大写字母 [A-Z]//一个数字或字母 [0-9a-zA-Z] ~~~ ## 2.预定义字符集:针对常用的备选字符集提供的简化符号 ~~~ //一位数字 [0-9] --> \d//一位数字字母或下划线 [0-9a-zA-Z_] -->\w \s //1位空字符:空格,tab,换行 . // 除换行外,其余所有字符 ~~~ ## 3.量词:定字符集出现的次数 特点:默认一个量词,仅修饰左侧紧邻的字符集 ### 3.1 确定数量: ~~~ {m,n} -->至少m个,最多n个 {m,} -->m个以上 {m} -->必须m个 ~~~ ### 3.2 不确定数量 ~~~ ? -->一个或0个 + -->1个以上 * -->多个或没有 ~~~ test() 方法用于检测正则表达式是否匹配字符串的一部分,返回boolean值 语法reg.test(str); 返回boolean值 ~~~ var reg =/\d{5,9}/; var str = "323232hell"; console.log(reg.test(str)); //true ~~~ 贪婪模式和懒惰模式 贪婪模式 ~~~ var str = "123456abc"; var reg = /\d{3,6}/; console.log(str.replace(reg,"*")) ~~~ 懒惰模式? ~~~ var str = "123456abc"; var reg = /\d{3,6}?/; console.log(str.replace(reg,"*")) ~~~ ## 4. 选择和分组 ~~~ //选择 | 读作"或" //分组 () ~~~ ~~~ 转义字符\ var a ="hello\""; console.log(a); \\hello" ~~~ ~~~ 手机号:+86或0086 可有可无,最多1个 空字符 不限制个数 1 3,4,5,7,8 选其一 9位数字 (\+86|0086)?\s*1[34578]\d{9} ~~~ ## 5. 指定匹配位置 ~~~ 开头和结尾:^开头的xxx;$结尾的xxx ~~~ >何时使用:仅匹配开头的规则和结尾的规则时使用 固定搭配:^正则表达式$-->表示从头到尾完整匹配 开头和结尾只出现正则表达式的内容 何时使用:只要验证时,必须前加^,后加$! ~~~ //匹配字符串开头的所有空字符 ^\s+//匹配字符串结尾的所有空字符 \s+$ ~~~ ~~~ var a =" hello"; var reg =/^\s+/; var str =a.replace(reg,""); console.log(str); ~~~ ## 6. 排除 ~~~ //除了abc [^abc] ~~~