RegExp(正则表达式)的创建方式
可以通过两种方式创建一个RegExp,具体如下:
通过/…./的方式来创建正则表达式(注意: /……/两边是没有单引号或双引号的)
通过RegExp构造方法来创建一正则表达式
为了更好的描述模式,正则表达式提供了3个标识,分别是: g/i/m
g: 全局匹配:在整个字符串中匹配,而不是在第一次匹配后之后停止
i: 忽略大小写匹配
m: 对多行字符串中的每一行,应用行首和行末的特殊字符(分别是^和$)
具体看参照下面代码加深理解:
var regx = new RegExp("are","g");var regx1 = /are/g;//常用的创建方式RegExp实例的主要属性
var regx1 = /are/g; //常用的创建方式console.log("source:"+regx.source +" global:"+regx.global+" ignoreCase:"+regx.ignoreCase +" multiline:"+regx.multiline);// source:are global:true ignoreCase:false multiline:falsefor(var p in regx) { //不会进入该for循环 if(regx.hasOwnProperty(p)) { console.log(regx[p]); }}RegExp实例的主要方法 - test
var regx1 = /are/g;var res = regx.test("you are a good boy!");console.log(res) ; //truevar res1 = regx.test("I am a good boy!"); console.log(res1) ; //falseRegExp实例的主要方法 - exec
var regx = /fn:(w+)s+ln:(w+)s/g; var s ="your fn:xiaoxin ln:tang right?"; var result = regx.exec(s); console.log(result.input); //your fn:xiaoxin ln:tang right? console.log(result.index); //5 console.log(result[0]); //fn:xiaoxin ln:tang console.log(result[1]); //xiaoxin console.log(result[2]); //tang console.log(result[3]); //undefined 因为只有2个捕获组,所以打印undefinedRegExp构造函数属性
var regx = /fn:(w+)s+ln:(w+)s/g;var s ="your fn:xiaoxin ln:tang right?";var result = regx.exec(s);console.log(RegExp.input); //your fn:xiaoxin ln:tang right?console.log(RegExp.lastMatch); //fn:xiaoxin ln:tangconsole.log(RegExp.leftContext); //yourconsole.log(RegExp.rightContext); //right?console.log(RegExp.$1); //xiaoxinconsole.log(RegExp.$2); //tangRegExp - 元字符
var s = "I am a good boy,you are also a good boy !";var regx = /good.*boy/g; //贪婪匹配console.log(regx.exec(s)[0]); //good boy,you are also a good boyvar regx1 = /good.*?boy/g; //懒惰匹配console.log(regx1.exec(s)[0]); //good boy以上内容是小编给大家分享的javascript正则表达式和字符串RegExp and String(一),下篇文章给大家分享javascript正则表达式和字符串RegExp and String(二)希望大家喜欢。