JavaScript RegExp 对象
RegExp:是正则表达式(regular expression)的简写
正则表达式用于对字符串模式匹配及检索替换,是对字符串执行模式匹配的弱小工具
语法:
var patt=new RegExp(pattern,modifiers);
或者
var patt=/pattern/modifiers;
其中:
pattern:代表正则表达式
modifiers:代表修饰符
修饰符:
i 执行对大小写不敏感的匹配。g 执行全局匹配(查找所有匹配而非在找到第一个匹配后进行)。m 执行多行匹配。
案例(匹配 hello、疏忽大小写):
var str = "HELLO world!";
var patt1 = /hello/i;
document.write(str.match(patt1));
输入:
HELLO
留神:当应用构造函数发明正则对象时,须要惯例的字符本义规定(在后面加反斜杠 \)。如,匹配 \w 时须要加 \, 以下是等价的:
// + 示意匹配一次或屡次
var re = new RegExp("\\w+");
var re = /\w+/;
方括号
用于查找某个范畴内的字符:
[abc] 查找方括号之间的任何字符。[^abc] 查找任何不在方括号之间的字符。[0-9] 查找任何从 0 至 9 的数字。[a-z] 查找任何从小写 a 到小写 z 的字符。[A-Z] 查找任何从大写 A 到大写 Z 的字符。[A-z] 查找任何从大写 A 到小写 z 的字符。[adgk] 查找给定汇合内的任何字符。[^adgk] 查找给定汇合外的任何字符。
元字符
领有非凡含意的字符
. 查找单个字符,除了换行和行结束符。\w 查找数字、字母及下划线。\W 查找非单词字符。\d 查找数字。\D 查找非数字字符。\s 查找空白字符。\S 查找非空白字符。\b 匹配单词边界。\B 匹配非单词边界。\0 查找 NULL 字符。\n 查找换行符。\f 查找换页符。\r 查找回车符。\t 查找制表符。\v 查找垂直制表符。
量词
定义正则匹配的次数
? 匹配 0 次或 1 次
+ 匹配 1 次或屡次
* 匹配 0 次或屡次
{n} 匹配 n 次
{n,} 匹配 n 次或 n 次以上
{n,m} 匹配 n 次到 m 次
RegExp 对象办法
-
test()
搜寻字符串指定的值,依据后果返回 true 或 falsevar patt1=new RegExp("a"); document.write(patt1.test("abc"));
输入:
true
-
exec()
检索字符串中的指定值。返回值是被找到的值。如果没有发现匹配,则返回 nullvar patt1=new RegExp("a"); document.write(patt1.exec("abc"));
输入:
a
-
toString()
返回正则表达式的字符串var patt = new RegExp("RUNOOB", "g"); var res = patt.toString(); document.write(res);
输入:
/RUNOOB/g
反对正则表达式的 String 对象的办法
-
search()
检索匹配正则表达式的值的个数var str="Visit Runoob!"; var n=str.search("Runoob"); document.write(n);
输入:
6
-
match()
匹配满足正则表达式的值,如果没有找到任何匹配的文本,返回 null。否则,它将返回一个数组var str="abcabcdabcde"; var n=str.match(/abc/g); document.write(n);
输入:
[abc,abc,abc]
-
replace()
替换与正则表达式匹配的子串。var str="hello world!"; var n=str.replace("hello","你好"); document.write(n);
输入:
你好 world!
-
split()
把字符串宰割为字符串数组。var str="2022-1-1"; var n=str.split("-"); document.write(n);
输入:
[2022,1,1]