多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[TOC] # 1.备选字符集:规定某一位字符的备选字符列表 > 特点:多选一 ``` var reg = /上[海天]/g; // var reg = /上海|上天/g; var str = "上海,上天,上去,上哪里"; console.log(str.replace(reg,"*")) ``` ## 1.1备选字符的unicode号连续 > [0-9]//一个数字 > [a-z]//一个小写字母 > [A-Z]//一个大写字母 > [0-9a-zA-Z]//一个数字或字母 例子: ``` var reg = /[0-9]/g; var reg01 = /[a-zA-Z]/g; var reg02 = /[0-9a-zA-Z]/g; var str = "helloABCDEFGHIJKL123456789"; console.log(str.replace(reg,"*")); console.log(str.replace(reg01,"*")); console.log(str.replace(reg02,"*")); ``` # 2.预定义字符集:针对常用的备选字符集提供的简化符号 > [0-9] --> \d //一位数字 > [0-9a-zA-Z_] -->\w //一位数字字母或下划线 > \s //1位空字符:空格,tab,换行 > . // 除换行外,其余所有字符 例子: ``` var reg = /\s/; var str = "hello world123456_你我"; console.log(str.replace(reg,"*")); console.log(str.replace(/\d/g,"*")); console.log(str.replace(/\w/g,"*")); ``` # 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" ``` 例子: ``` <body> <textarea id="txt" cols="30" rows="10"></textarea> <button id="btn">过滤</button> <textarea id="value" cols="30" rows="10"></textarea> <script> var txt = document.getElementById("txt"); var btn = document.getElementById("btn"); var filter = document.getElementById("value"); var reg = /(京东)|(淘宝)/g; btn.onclick = function(){ var txtValue = txt.value; var newTxt = txtValue.replace(reg,"**"); // console.log(newTxt); filter.value = newTxt; } </script> </body> ``` # 5. 指定匹配位置 > 开头和结尾:^开头的xxx;$结尾的xxx ``` 何时使用:仅匹配开头的规则和结尾的规则时使用 固定搭配:^正则表达式$-->表示从头到尾完整匹配 开头和结尾只出现正则表达式的内容 ``` **何时使用:只要验证时,必须前加^,后加$!** > ^\s+//匹配字符串开头的所有空字符 \s+$//匹配字符串结尾的所有空字符 ``` var a =" hello"; var reg =/^\s+/; var str =a.replace(reg,""); console.log(str); ``` # 6. 排除 > //除了abc > [^abc] ``` var str = "abchello world"; var reg = /[^abc]/g; console.log(str.replace(reg,"*")) ```