JavaScript正则表达式函数总结(常用)

网络编程 2021-07-04 17:33www.168986.cn编程入门
正则表达式作为一种匹配处理字符串的利器在很多语言中都得到了广泛实现和应用.这篇文章主要介绍了JavaScript正则表达式函数,需要的朋友可以参考下

/ 测试环境Chrome 63.0.3239.132 /

JS中正则对象修饰符可选值为"i" "g" "m",即忽略大小写 进行全局匹配 多行模式

JS中正则表达式支持的元字符

1枚举方括号表达式,范围方括号表达式,枚举取反方括号表达式,范围取反方括号表达式

2. \w \W \d \D \s \S \b \B \n \r \f \v \888 \uffff \xff

3n? n+ n n{a} n{a,} n{a,b}及这些量词的非贪心模式

4^ $ (?!) (?=) (?:)

其他

1JS中引用分组请用\number,不支持''和<>这样的命名分组

2不支持量词的占有模式

3不支持逆向环视

4方括号表达式中复合表达式支持如下

[abc0-9] [abc\d] [\d\w^&]等等类似的

5支持修饰符组合,比如gim mig gi ig等等,无顺序要求

JS正则对象属性

global该对象是否开启全局匹配,一个布尔值

ignoreCase该对象是否开启忽略大小写,一个布尔值

multiline该对象是否开启多行模式,一个布尔值

lastIndex该对象下一次开始匹配的位置,即上一次匹配结束的位置,一个正整数

source正则表达式的源文本,即/regexp/flag的regexp,不包含修饰符,一个字符串

创建正则表达式

1myreg = new RegExp(patternString[,globalFlags]);

2myreg = /yourRegexp/globalFlags;

JS中正则表达式常用方法

在RegExp对象中

1test(yourString);

定义检测一个字符串是否匹配某个模式。

其他说明该方法将忽略"g"标志和正则对象的lastIndex属性(即总是从开头找起),只要查找到符合模式的字符串即匹配成功。

2exec(yourString);

定义检索字符串中的正则表达式的匹配。

其他说明若没开启"g"标志,只查找一次,不修改正则对象的lastIndex属性,返回一个对象,包含下标0、index、input,这时属性和match等价;开启"g",将修改正则对象的lastIndex属性为本次找到的子字符串的末尾位置,返回一个和没开启"g"一样的对象。(你可以自行修改正则对象的lastIndex属性来规定exec开始查找的位置。)

在String对象中

1search(yourRegexpOrString);

定义检索字符串中与指定的子字符串或正则表达式相匹配的子字符串。

其他说明该方法将忽略"g"标志和正则对象的lastIndex属性(即总是从开头找起),返回找到的第一个字符的位置,如果未找到返回-1。

2match(yourRegexpOrString);

定义在字符串内查找一个或多个与正则表达式匹配的字符串,返回一个对象。(忽略laseIndex属性)

其他说明若没开启"g"标志,将只查找第一个匹配的字符串,返回一个对象,包含下标0、index、input,其中下标0等价于index,input是String的引用;开启"g",返回一个数组,数组的length是匹配的字符串个数,每个元素是每个匹配的起始字符位置。

3replace(yourRegexpOrString,placementString);

定义用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。

其他说明如果没有"g"标志只会替换一次,并且如果参数是字符串而不是正则对象始终替换一次。返回一个字符串,为用placementString替换yourRegexpOrString后的结果。placementString中$有特殊用途,见下表

$1、$2、...、$99 regexp中捕获的引用分组。
$& 本次匹配的文本。
$` 本次匹配到的子串左侧的文本。
$' 本次匹配到的子串右侧的文本。
$$ $本身。

该方法的第二个参数可以为一个函数,每次匹配都会调用该函数,以函数返回值作为placement,一共传入4个参数,第一个参数为本次匹配的子文本($&),中间参数为子表达式匹配字符串,个数不限($i),倒数第二个参数为本次匹配到的子文本下标位置,一个参数表示执行place方法的字符串本身。

4split(yourRegexpOrString[,howMany]);

定义把一个字符串分割成字符串值的数组。

其他说明是arr.join(separatorString)反操作,如果传入"",则每个字符都将会被分隔到数组。howMany指定返回数组的个数。

以上所述是长沙网络推广给大家介绍的JavaScript正则表达式函数,希望对大家有所帮助,如果大家有任何疑问请给我留言,长沙网络推广会及时回复大家的。在此也非常感谢大家对狼蚁SEO网站的支持!

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by