一. 基本语法:

var part = new RegExp(pattern,modifiers);
var myfunc = new Function([name],’alert(“Hello” + name)’);
var patt = /pattern/modifiers;

二. 正则表达式中的modifiers

前面已经提到了modifier,它主要用来指明模式是否对大小写敏感以及是否全局搜索。
i: 用来指明是否对大小写敏感。
g: 用来指明是否进行全局搜索。(即匹配所有符合模式的字符串而不是搜索到第一个就停止)
m: 用来指明是否进行多行匹配。(即遇到转义换行符\n是否还继续搜索)
经常用到的是前面两个i和g,m不是很常用。

三. JavaScript正则表达式对象的方法

1.compile()。它将编译一个正则表达式。该方法已经在JavaScript version 1.5中被弃用。
2.exec()。该方法将对一个字符串进行匹配。并返回第一个匹配项目。例如:

var patt1=new RegExp(“e”);
patt1.exec(“The best things in life are free”);

结果将返回e,即第一个匹配到的项目。

3.test()。该方法对一个字符串进行匹配。并根据匹配结果返回true或false。例如:

var patt1=new RegExp(“e”);
patt1.test(“The best things in life are free”);

结果将返回true。因为字符串中含有能匹配上的项目e。
4.toString()。该方法将正则表达式对象转换为一个字符串。例如:

var patt = new RegExp(“Hello World”,”g”);
patt.toString();

结果将返回一个字符串’/Hello World/g’。

/// string

  1. match()
    var str = “Do you know if there is all there is?”;
     var patt1 = /[is]/gi;
     s= str.match(patt1);
     console.log(s);
    

结果: [“i”, “i”, “s”, “i”, “s”]

  1. stringObj.search(rgExp)

返回与正则表达式查找内容匹配的第一个子字符串的位置(偏移位)。

  1. stringObj.replace(rgExp, replaceText)

返回根据正则表达式进行文字替换后的字符串的复制

四. 正则表达式中的括号

1.[abc] 这是最基本的一种用法,它用来查找方括号中出现的任何字符,可以是一个或者多个,并且和顺序没有关系。

var str = “Do you know if there is all there is?”;
var patt1 = /[is]/gi;1.
2.
如果用patt1来匹配str,那么我们根据上面的定义很容易知道会匹配到str中i和s字母,并且由于patt1中指明了全局匹配和对大小写不敏感,所有的i和s字母无论大小写都会被匹配到。

2.[^abc]。这种写法用来查找任何不属于方括号中出现的字符,下面是一个例子:

var str = “Do you know if there is all there is?”;
var patt2 = /[^is]/gi; 1.
2.
如果使用patt2来匹配str,很明显,字母i和字母s以外的字符都会被匹配到。

3.[0-9]。这种写法用来查找某个区间中的字符。下面是一个例子:

var str = “There are 3 child”;
var patt3 = /[a-z]/ig;1.
2.
使用patt3匹配str,其中所有的a到z的字母,也就是所有英文字母,无论大小写,都会被匹配到。

4.[^0-9]。这种写法用来查找不属于某个区间中的字符。下面是一个例子:

var str = “There are 3 child”;
var patt4 = /[a-z]/ig;”1.
2.
使用patt4来匹配str,所有a到z的字母,也就是所有英文字母,无论大小写都不会被匹配,因此只有数字3会被匹配到。

5.(x|y)。这种写法用来从匹配几种(可以不止两种)情况中的任意一种。下面是一个例子:

var str = “re, green, red, green, gren, gr, blue, yellow”;
var patt5 = /(red|green)/g;1.
2.
如果使用patt5来匹配str,str中所有的red和green都会被匹配到。再来一个多中选择的例子:

var str = “01234567890123456789”;
var patt6 = /(0|5|7)/g; 1.
2.
使用patt6来匹配str,str中所有的数字0、5、7都会被匹配到。

评论

您还没有登陆,登陆后可以发表评论哦!点击登陆