互联网技术 · 2024年2月25日

JavaScript正则表达式标记的用法及实例

正则的思想都是一样的,但是具体的写法会有所不同,在这里提到的/g,/i,/m在其他的地方也许就不能用了,需要的朋友可以参考下

一,js正则标志/g,/i,/m说明

1,/g (globle)表示该表达式将用来在输入字符串中查找所有可能的匹配,全文查找出现的所有匹配字符,返回的结果可以是多个。如果不加/g最多只会匹配一个

2,/i (ignorCase)表示匹配的时候不区分大小写,

忽略大小写,注意仅是忽略大小写,并不忽略全半角。

3,/m (mutiple)表示多行匹配,多行查找什么是多行匹配呢?就是匹配换行符两端的潜在匹配。影响正则中的^$符号

m 影响 ^、$。

若不指定 m,则:^ 只在字符串的最开头,$ 只在字符串的最结尾。即:匹配整个串的开始和结束

若指定 m,则:^ 在字符串每一行的开头,$ 在字符串每一行的结尾。即:匹配每一行的开始和结束

二,实例说明

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 = 1n2n3n4n5n6;
alert(p.test(s)); //显示为true
alert(RegExp.rightContext.replace(/x0A/g, a)); //显示a2a3a4a5a6
alert(RegExp.leftContext); //显示为竖的2345
alert(RegExp.rightContext); //显示为6
 
var p = /$/g;
var s = 1n2n3n4n5n6;
alert(p.test(s)); //显示为true
alert(RegExp.rightContext.replace(/x0A/g, a)); //什么都不显示
alert(RegExp.leftContext); //显示为竖的123456
alert(RegExp.rightContext); //什么都不显示
 
var p = /^/mg;
var s = 1n2n3n4n5n6;
alert(p.test(s)); //显示为true
alert(RegExp.rightContext.replace(/x0A/g, a)); //显示为1a2a3a4a5a6
alert(RegExp.leftContext);  //显示为竖的12345
alert(RegExp.rightContext); //显示为6
</script>

//从上例中可以看出/m影响的^$的分割方式

上面说的三个例子,/i,/g,/m分开来说的,可以排列组合使用的。个人觉得/m没有多大用处

补充说明:

n匹配一个换行符。等价于 x0a 和 cJ

rightContext

RegExp.rightContext ($)

该特性是非标准的,请尽量不要在生产环境中使用它!

rightContext 非标准属性是正则表达式的静态和只读属性,含有最新匹配的右侧子串。 RegExp.$ 是这个属性的别名。

语法

RegExp.rightContext

RegExp[“$”]

描述

rightContext 属性是静态的,并且会在匹配成功时修改。

你不能使用属性访问器(RegExp.$)来使用简写的别名,因为解析器在这里会将其看做字符串的开始,并抛出 SyntaxError。使用 方括号符号来访问属性。

示例

使用 rightContext 和 $

var re = /hello/g;

re.test(hello world!);

RegExp.rightContext; // ” world!”

RegExp[“$”]; // ” world!”

leftContext 非标准属性是正则表达式的静态和只读属性,含有最新匹配的左侧子串。 RegExp.$` 是这个属性的别名。

语法

RegExp.leftContext

RegExp[$`]

描述

leftContext 属性是静态的,并且会在匹配成功时修改。

你不能使用属性访问器(RegExp.$`)来使用简写的别名,因为解析器在这里会将其看做模板字符串的开始,并抛出 SyntaxError 。使用 方括号符号来访问属性。

示例

使用 leftContext 和 $`

var re = /world/g;

re.test(hello world!);

RegExp.leftContext; // “hello “

RegExp[$`]; // “hello “

规范

非标准。并不是任何现行规范的一部分。

OpenMagic API

Need more than content? Move into the product flow.

If you are here for model access, pricing, developer docs, or the future API console, the dedicated product path now lives on api.openmagic.ai.

登录免费注册