主要两种:
直接写 正则表达式字面量,
或使用 RegExp 构造方法传入 正则表达式字面量。
注意标志位的设置
r1 = /\d{3}/
/\d{
3}/
r2 = /\d{3}/gimy
/\d{
3}/gimy
r3 = new RegExp(/\d{3}/)
/\d{
3}/
r3 = new RegExp(/\d{3}/gimy)
/\d{
3}/gimy
r4 = new RegExp(/\d{3}/, "gimy")
/\d{
3}/gimy
g global 全局模式
i ignoreCase 忽略大小写
m multiline 多行匹配
y sticky 搜索是否具有“粘性” 见MDN RegExp sticky
对本字符串中:指定(模式的)字符串 统一替换为 replaceValue。
返回新的结果字符串。
不会改变原字符串。
默认只会替换匹配到的第一个,如果需求是全部替换,则设置正则表达式 global=true
例:
"123asd456hhh".replace(/\d/, "_"); // 替换掉字符串中 第一个 数字字符
"_23asd456hhh"
"123asd456hhh".replace(/\d/g, "_"); // 替换掉字符串中 所有的 数字字符
"___asd___hhh"
查找字符串str对象中,指定模式的子字符串。
返回匹配到的字符串数组。
依旧注意 flags
"123asd456hhh".match(/\d/)
["1", index: 0, input: "123asd456hhh", groups: undefined]
"123asd456hhh".match(/\d/g)
(6) ["1", "2", "3", "4", "5", "6"]
查找指定(模式的)子字符串 第一次出现的位置(起始点下标)
返回该下标数值。
在给定字符串上查找,是否有子字符串与本模式相匹配。
如果想测试整个字符串的模式,可以使用正则表达式的^ $
判断是否为开头和结尾。
/\d{3}/.test("123")
true
/\d{
3}/.test("123456")
true
/^\d{
3}$/.test("123456")
false
重新编译一个正则表达式。
因API设计不合理,已弃用。
见https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/compile
在给定字符串上执行搜索,搜索符合本模式的子字符串。
返回匹配到的子字符串的数组。
详见 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/RegExp/exec