文档
用法
/正则表达式主体/修饰符(可选)
- search()
search() 方法 用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子串的起始位置。
var str = "Visit Runoob!";
var n = str.search(/Runoob/i);//i可以不区分大小写都匹配成功 结果为:n=6
// var n = str.search("Runoob");
- replace()
replace() 方法 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
var str = "Microsoft!";
var txt = str.replace(/microsoft/i,"Runoob");
//结果输出为:Runoob!
3.使用 RegExp 对象
在 JavaScript 中,RegExp 对象是一个预定义了属性和方法的正则表达式对象。
4.使用 test()
test() 方法是一个正则表达式方法。
test() 方法用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则返回 false。
实例
var patt = /e/;
patt.test("The best things in life are free!");
字符串中含有 “e”,所以该实例输出为:true
5.使用 exec()
exec() 方法用于检索字符串中的正则表达式的匹配。
该函数返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。
/e/.exec("The best things in life are free!");//e
6.match() 很依赖是否带g
返回匹配结果
var str="Hello world!"
str.match("world") //world
str.match("World")//null
str.match("worlld")//null
str.match("world!")//world
var str="1 plus 2 equal 3"
str.match(/\d+/g)//1,2,3
修饰符
i 执行对大小写不敏感的匹配。
g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。
m 执行多行匹配。
m修饰符规定正则表达式可以执行多行匹配。
m修饰符的作用是修改^和$在正则表达式中的作用,让它们分别表示行首和行尾。
在默认状态下,一个字符串无论是否换行只有一个 开始 ^ 和结尾 $,如果采用多行匹配,那么每一个行都有一个^和结尾$。
语法结构:
构造函数方式:
new RegExp(“regexp”,“m”)
对象直接量方式:
/regexp/m
实例一:
var str="This is an\n antzone good";
var reg=/an$/;
console.log(str.match(reg));
以上代码不能够匹配字符串"an",尽管"an"后面已经换行了,但是并没有采用多行匹配,所以不是字符串行的结尾。
实例二:
var str="This is an\n antzone good";
var reg=/an$/m;
console.log(str.match(reg));
以上代码可以匹配字符串"an",因为采用了多行匹配。
实例三:
var reg = /^b/;
var str = 'test\nbbs';
execReg(reg,str);
匹配失败,因为字符串的开头没有b字符。但是加上m修饰符之后:
实例四:
var reg = /^b/m;
var str = 'test\nbbs';
execReg(reg,str);//
匹配到b,因为加了m修饰符之后,^已经表示行首,由于bbs在字符串第二行的行首,所以可以成功地匹配。
其它:
表达式 描述
[abc] 查找方括号之间的任何字符。
[0-9] 查找任何从 0 至 9 的数字。
(x|y) 查找任何以 | 分隔的选项。
{} 查找数量 例如:(\d{4}|\d{3}) 三个或者四个数组
帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
元字符是拥有特殊含义的字符:
元字符 描述
\d 查找数字。
\s 查找空白字符。
\b 匹配单词边界。
\uxxxx 查找以十六进制数 xxxx 规定的 Unicode 字符。
^和$在正则表达式中表示从头和从尾匹配
/[^a-z\s]/会匹配"my 3 sisters"中的"3 ",此时^的意思是“非”,看是不是在【】里面
/^A/会匹配"An e"中的A,但是不会匹配"ab A"中的A,此时^A的意思是“匹配开头的A”,
量词:
量词 描述
n+ 匹配任何包含至少一个 n 的字符串。
n* 匹配任何包含零个或多个 n 的字符串。
n? 匹配任何包含零个或一个 n 的字符串。