js正则表达式中/g /i /m /e /x /s的用法

1、/g 表示该表达式将用来在输入字符串中查找所有可能的匹配,返回的结果可以是多个。如果不加/g最多只会匹配一个;
2、/i 表示匹配的时候不区分大小写,这个跟其它语言的正则用法相同;
3、/m 表示多行匹配。什么是多行匹配呢?就是匹配换行符两端的潜在匹配。影响正则中的^$符号;
4、/s 与/m相对,单行模式匹配;
5、/e 可执行模式,此为PHP专有参数,例如preg_replace函数;
6、/x 忽略空白模式。

**注意:这些修饰符是可以混合使用的。例如 /ig、/ie等。**

1,/g的用法

<script type="text/javascript">  
    str = "tankZHang (231144)"+  
     "tank ying (155445)";  
    res = str.match(/tank/);    //没有加/g  
    alert(res);                 //显示一个tank  

    res = str.match(/tank/g);   //加了/g  
    alert(res);                 //显示为tank,tank  
</script>

2,/i的用法

<script type="text/javascript">
    str = "tankZHang (231144)" +
     "tank ying (155445)";
    res = str.match(/zhang/);
    alert(res);                  //显示为null  

    res = str.match(/zhang/i);   //加了/i  
    alert(res);                  //显示为ZHang  
</script>

3,/m的用法

<script type="text/javascript">
    var p = /$/mg;
    var s = '1\n2\n3\n4\n5\n6';
    alert(p.test(s));  //显示为true  
    alert(RegExp.rightContext.replace(/\x0A/g, '\\a'));  //显示\a2\a3\a4\a5\a6  
    alert(RegExp.leftContext);    //显示为竖的2345  
    alert(RegExp.rightContext);   //显示为6  

    var p = /$/g;
    var s = '1\n2\n3\n4\n5\n6';
    alert(p.test(s));  //显示为true  
    alert(RegExp.rightContext.replace(/\x0A/g, '\\a'));  //什么都不显示  
    alert(RegExp.leftContext);    //显示为竖的123456  
    alert(RegExp.rightContext);   //什么都不显示  

    var p = /^/mg;
    var s = '1\n2\n3\n4\n5\n6';
    alert(p.test(s));    //显示为true  
    alert(RegExp.rightContext.replace(/\x0A/g, '\\a')); //显示为1\a2\a3\a4\a5\a6  
    alert(RegExp.leftContext);     //显示为竖的12345  
    alert(RegExp.rightContext);    //显示为6  
</script>   

//从上例中可以看出/m影响的^$的分割方式
上面说的三个例子,/i,/g,/m分开来说的,可以排列组合使用的。

### 正则表达式的作用 正则表达式是一种用于描述字符串模式的强大工具,它可以通过特定的字符组合来表示复杂的字符串匹配规则[^4]。它的主要作用在于对文本进行查找、替换、分割以及验证等操作。 #### 使用场景 - **字符串匹配**:可以快速判断某个字符串是否符合指定的模式。 - **数据提取**:从大量文本中提取满足条件的部分内容。 - **输入校验**:常用于表单提交前的数据合法性检查,比如邮箱地址或电话号码格式验证。 - **文本替换**:基于复杂规则批量修改文本中的某些部分。 --- ### JavaScript 中正则表达式的使用方法 在 JavaScript 中,正则表达式既可以作为字面量创建,也可以通过 `RegExp` 构造函数动态生成。以下是常见的两种方式: 1. 字面量形式: ```javascript const regex = /pattern/flags; ``` 2. 构造函数形式: ```javascript const regex = new RegExp('pattern', 'flags'); ``` 其中,`pattern` 是正则表达式的主体,而 `flags` 则是一些可选标志位,常用的有以下几个: - `g`: 表示全局匹配。 - `i`: 表示忽略大小写。 - `m`: 多行模式下匹配。 #### 方法介绍 JavaScript 提供了一些内置的方法支持正则表达式的应用,如下所示: - `.test()`:测试某字符串是否能与当前正则表达式匹配。 ```javascript console.log(/abc/.test("abcdef")); // true ``` - `.match()`:返回一个数组,包含所有匹配项或者 null。 ```javascript console.log("hello world".match(/world/g)); // ["world"] ``` - `.replace()`:按照给定规则替换目标串的内容。 ```javascript console.log("aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss tt uu vv ww xx yy zz aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss tt uu vv ww xx yy zz".replace(/\b\w{2}\b/g, "XX")); // 将所有的两位字母单词替换成 XX ``` - `.split()`:依据分隔符拆解成子串集合。 ```javascript console.log("a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z".split(/[;,]/)); // 结果为["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"] ``` 上述方法均体现了正则表达式强大的功能特性[^2]。 --- ### Shell 脚本中的正则表达式分类 除了编程语言外,在命令行界面 (CLI) 如 Unix/Linux shell 下也广泛运用到了正则表达式技术。具体来说分为两大类——普通正则表达式(Basic Regular Expressions, BRE) 和 扩展正则表达式(Extended Regular Expressions, ERE)[^3]。两者区别体现在元字符集上,默认情况下ERE需要显式启用才能生效。 例如grep默认采用BRE风格;如果想切换到ERE,则需附加参数 `-E` 或者调用 egrep 工具代替 grep 实现相同效果。 --- ### 总结 综上所述,无论是开发环境还是运维领域,熟练掌握并灵活运用正则表达式都是不可或缺的一项技能。它可以极大地提高工作效率,并简化许多繁琐的任务流程[^1]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值