您的位置:首页技术文章
文章详情页

JavaScript与PHP中正则写法

【字号: 日期:2022-09-12 13:20:00浏览:88作者:猪猪
一、JavaScript

有个在线调试正则的工具,点击查看工具。下面的所有示例代码,都可以在codepen上查看到。

1.创建正则表达式

var re = /ab+c/; //方式一 正则表达式字面量 var re = new RegExp('ab+c'); //方式二 RegExp对象的构造函

1)正则表达式字面量在脚本加载后编译。若你的正则表达式是常量,使用这种方式可以获得更好的性能。

2)使用构造函数,提供了对正则表达式运行时的编译。当你知道正则表达式的模式会发生改变, 或者你事先并不了解它的模式或者是从其他地方(比如用户的输入),得到的代码这时比较适合用构造函数的方式。

2.正则表达式中的特殊字符

^ $ * + ? . (x) (?:x) x(?=y) x(?!y) x|y {n} {n,m} [xyz] [^xyz] [b] b B cX d D f n r s S t v w W n 0 xhh uhhhh

3.正则表达式中的方法

有6个,分别是exec、test、match、search、replace和split。

exec和test的语法都是regexObj调用,match、search、replace和split的语法都是string调用。

exec:

方法为指定的一段字符串执行搜索匹配操作。它的返回值是一个数组或者 null。语法如下:

JavaScript与PHP中正则写法

示例代码:

var re = /quicks(brown).+?(jumps)/ig; var result = re.exec(’The Quick Brown Fox Jumps Over The Lazy Dog’);

返回结果:

JavaScript与PHP中正则写法

test:

一个在字符串中测试是否匹配的RegExp方法,它返回true或false。语法如下:

JavaScript与PHP中正则写法

match:

一个在字符串中执行查找匹配的RegExp方法,它返回一个数组或者在未匹配到时返回null。

与exec略有不同,首先是调用方式,math是由字符串调用,而exec是由RegexObj调用。

其次,如果表达式中有“g”标记,那么返回一个匹配的字符串数组,如果没有就会和exec返回的一样。下面这个demo就是有“g”。语法如下:

JavaScript与PHP中正则写法

示例代码:

var re = /quicks(brown).+?(jumps)/ig; var result = re.exec(’The Quick Brown Fox Jumps Over The Lazy Dog’);

返回结果:

JavaScript与PHP中正则写法

search:

一个在字符串中测试匹配的String方法,它返回匹配到的位置索引,或者在失败时返回-1。语法如下:

JavaScript与PHP中正则写法

例如上面的示例代码如果是调用search,返回数据就是4。

replace:

一个在字符串中执行查找匹配的String方法,并且使用替换字符串替换掉匹配到的子字符串。语法如下:

JavaScript与PHP中正则写法

返回 pattern 的匹配次数。 它的值将是0次(不匹配)或1次,因为preg_match()在第一次匹配后,将会停止搜索。

$subject = 'dd133aa2'; $pattern = ’/d+/’; preg_match($pattern, $subject, $matches, PREG_OFFSET_CAPTURE); print_r($matches);

上面的示例代码加了参数“PREG_OFFSET_CAPTURE”,这样的话,在$matches中会多一个偏移数。例如下面的“2”

JavaScript与PHP中正则写法

preg_match_all:

执行一个“全局”正则表达式匹配

标签: JavaScript
相关文章: