luofuIT成长记录 2020-01-08
正则表达式是由一个字符序列形成的搜索模式。
/正则表达式主体/修饰符(可选)
let patt = /runoob/i
g:执行全局匹配
i:执行对大小写不敏感的匹配
m:执行多行匹配
方括号
[abc] 查找方括号内的任何字符
[^abc] 朝招任何不在方括号内的字符
[0-9] 任何0~9之间的数字
[A-z] 任何大写A-小写z的字符
元字符
. 查找单个字符除元字符 /h.t/ hat hot
\w 单词字符
\W 非单词字符
\d 数字
\D 非数字
\s 空白字符
\S 非空白字符
\b 单词边界
\B 非单词边界
\0 null
\n 换行符
\r 回车符
\xxx 八进制xxx规定的字符
\xdd 十六进制dd规定的字符
\uxxxx 查找以十六进制xxx规定的Unicode字符
量词
n+ 包含>=1个n
n* 包含>=0个n
n? 0或1个n
n{X} x个n
n{X,} >=X个n
n{X,Y} X~Y个n
n$ n结尾
^n n开头
?=n 其后紧跟n
?!n 其后没有紧跟n
constructor 返回RegExp对象原型
global 是否设置g修饰符
ignoreCase 是否设置i修饰符
multiline 是否设置m修饰符
lastIndex 用于规定下次匹配的起始位置
source 返回正则表达式的匹配模式
test()方法用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则返回 false。
var patt = /e/; patt.test("The best things in life are free!"); // 结果返回true
/e/.test("The best things in life are free!")
exec()方法用于检索字符串中的正则表达式的匹配。该函数返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。
/e/.exec("The best things in life are free!"); // 结果返回e
1.search() 方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子串的起始位置。没有则返回-1
var str = "Visit Runoob!"; var n = str.search(/Runoob/i); // 结果6
2.replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
// 字符串替换
var txt = str.replace("Microsoft","Runoob");
// 正则替换
var txt = str.replace(/microsoft/g,"Runoob");
var txt = str.replace(/microsoft/g,x=>{
return 进行相应操作
});
3.match()找到一个或多个正则表达式的匹配,没有返回null,有返回数组
var n=str.match(/ain/g);
4.split(separator,limit)
第一个参数字符串或者正则,第二个限制返回数组的长度