有人可以解释为什么这不起作用? (我使用的是Chrome开发者控制台)
pattern
-> "/Xmp\.MP\.RegionInfo\/MPRI:Regions/"
key
-> "Xmp.MP.RegionInfo/MPRI:Regions[1]"
key.search(pattern)
-> -1
key.search(/Xmp\.MP\.RegionInfo\/MPRI:Regions/)
-> -1
"Xmp.MP.RegionInfo/MPRI:Regions[1]".search(pat)
-> -1
"Xmp.MP.RegionInfo/MPRI:Regions[1]".search(/Xmp\.MP\.RegionInfo\/MPRI:Regions/)
-> 0
如果我使用变量,那对我来说绝对没有意义。
答案 0 :(得分:2)
在第一个示例中看起来pattern
是一个字符串,它必须是RegExp
对象:
var pattern = /Xmp\.MP\.RegionInfo\/MPRI:Regions/
var key = "Xmp.MP.RegionInfo/MPRI:Regions[1]"
key.search(pattern); // equals 0
如果要将字符串转换为正则表达式,请使用RegExp
构造函数(但删除斜杠):
var pattern = new RegExp("Xmp\.MP\.RegionInfo\/MPRI:Regions");
答案 1 :(得分:0)
在您的示例中,模式似乎是一个字符串。您需要它作为RegExp对象。
答案 2 :(得分:0)
在第一种情况下,您的模式用引号括起来,所以它是字符串。在第二种情况下,它没有引号 - >它是RegExp对象。