正则表达式

mac2024-03-11  52

在ES5中,RegExp构造函数的参数有两种情况。

第一种情况是,参数是字符串,这时第二个参数表示正则表达式的修饰符(flag)。

var regex = new RegExp('xyz', 'i'); // 等价于 var regex = /xyz/i;

第二种情况是,参数是一个正则表示式,这时会返回一个原有正则表达式的拷贝。

var regex = new RegExp(/xyz/i); // 等价于 var regex = /xyz/i;

正则表达式模式

方括号用于查找某个范围内的字符:

表达式描述[abc]查找方括号之间的任何字符。[0-9]查找任何从 0 至 9 的数字。(x|y)查找任何以 | 分隔的选项。

元字符是拥有特殊含义的字符:

元字符描述\d查找数字。\s查找空白字符。\b匹配单词边界。\uxxxx查找以十六进制数 xxxx 规定的 Unicode 字符。

量词:

量词描述n 匹配任何包含至少一个 n 的字符串。n*匹配任何包含零个或多个 n 的字符串。n?匹配任何包含零个或一个 n 的字符串。

 

n$匹配任何结尾为 n 的字符串。^n匹配任何开头为 n 的字符串。

 

[^abc]查找任何不在方括号之间的字符。

 

正则表达式修饰符

修饰符 可以在全局搜索中不区分大小写:

修饰符描述i执行对大小写不敏感的匹配。g执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。m执行多行匹配。

常用正则表达式

/*是否带有小数*/ function isDecimal(strValue ) { var objRegExp= /^\d \.\d $/; // ^/d :以若干数字开头 :数字个数大于等于1 //\. : \表示转义字符,则\.为小数点 //\d $:以若干数字结尾 return objRegExp.test(strValue); } /*校验是否中文名称组成 */ function ischina(str) { var reg=/^[\u4E00-\u9FA5]{2,4}$/; /*定义验证表达式*/ //匹配一2-4个汉字的写法。 2、这两个unicode值正好是Unicode表中的汉字的头和尾 return reg.test(str); /*进行验证*/ } /*校验邮件地址是否合法 */ function IsEmail(str) { var reg=/^(\w) (\.\w )*@\w ((\.\w ) )$/// ^[a-zA-Z0-9] :以字母或数字开头的若干字符 return reg.test(str); } /*校验电话码格式 */ function isTelCode(str) { var reg= /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/; //8位或者11位电话号码 return reg.test(str); }

 

更多专业前端知识,请上 【猿2048】www.mk2048.com
最新回复(0)