欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

javaScript高级程序设计:正则表达式代码实例

程序员文章站 2022-06-21 08:34:12
正则表达式通常用来匹配一个字符串,返回true(至少匹配到了一次)或者false(一次也没匹配到)。 正则表达式分为字面量方式和构造函数的方式 var reg = /[ab...

正则表达式通常用来匹配一个字符串,返回true(至少匹配到了一次)或者false(一次也没匹配到)。

正则表达式分为字面量方式和构造函数的方式

var reg = /[abs]/g; //字面量
var reg5 = new regexp("[sbs]jjj", "g");//全局匹配sjjj或者bjjj;

字面量形式转换为构造函数的正则要注意的事项:

var reg5 = new regexp("[sbs]jjj", "g");//全局匹配sjjj或者bjjj;
//等同于
var reg6 = /[sbs]jjj/g;
//注意传递给构造函数的参数都是字符串,
//所以在某些时候可能要字符进行双重转译(在转译的基础上再次进行转译,所有的元字符),通常是"\",在构造函数中转译成"\\"(或者说,遇到"\",就转译成"\\")

正则表达式有三种匹配模式---i,g,m。

1.i表示在匹配的时候不区分大小写(包括要匹配的字符串和正则字面量本身);g表示全局匹配(可能会匹配多次,而不是匹配到一次就停止,并且下一次匹配总是从上一次匹配上的字符之后进行),m表示多行(不常用),三种匹配模式可以组合使用

var reg1  = /ght///匹配字符中的ght字符,只匹配一次;
var reg2  = /ght/g
alert(reg2.test("htyghtthyght"))//会进行多次匹配,第一次是从0开始,匹配到第一次后,又从下标为4开始继续匹配

元字符:( [ { \ ^ $ | ) ? * + .],如果这些元字符要作为匹配"元素",就必须要进行转译,用"\"+元字符进行转译;

/**
 *全局匹配"yk"或者"hk",不区分大小写
 * @type {regexp}
 */
var reg3 = /[yh]k/gi;
/**转译
 * 全局匹配"[yh]k",不区分大小写;
 */
var reg4 = /\[yh\]k/gi;
alert(reg4.test("[yh]kii"))//true