您的浏览器过于古老 & 陈旧。为了更好的访问体验, 请 升级你的浏览器
Ready 发布于2014年08月13日 02:00

原创 JavaScript RegExp.compile() 函数详解

3329 次浏览 读完需要≈ 4 分钟

内容目录

compile()函数用于更改正则表达式模式,并将正则表达式模式编译为内部格式,从而执行得更快。

该函数属性RegExp对象(实例),所有主流浏览器均支持该函数

语法

regExpObject.compile( pattern [, flags ] )

参数

参数 描述
pattern String类型字符串形式的正则表达式模式。
flags 可选/String类型指定的正则表达式标志字符串。

参数flags可以使用以下标志字符,从而让正则表达式在搜索时满足某些特定的功能(这些字符可以任意组合使用)。

  • g:全局搜索出现的所有pattern匹配,而不仅仅是第一个匹配。
  • i:搜索不区分大小写。
  • m:多行搜索("^"、"$"可额外匹配多行文本中每行的开始位置和结束位置)。

返回值

compile()函数没有返回值(或者说,返回值为undefined)。该函数直接将当前RegExp对象实例的正则表达式模式替换为经过编译的、新的正则表达式模式。

compile()函数将pattern转换为内部的格式,从而执行得更快。例如,这允许在循环中更有效地使用正则表达式。当重复使用相同的表达式时,编译过的正则表达式使执行加速。然而,如果正则表达式发生更改,则这种编译毫无益处。

示例&说明

var str = "abc12456def45646ghi";
var regExp = new RegExp("[a-z]+");
document.writeln( regExp.exec(str) ); // abc


// 更改regExp的正则表达式模式,并进行编译
// 这与下列语句的作用是相同的:regExp = /\d+/;
regExp.compile("\\d+");
document.writeln( regExp.exec(str) ); // 12456

运行代码

  • CodePlayer技术交流群1
  • CodePlayer技术交流群2

0 条评论

撰写评论

打开导航菜单