有人可以解释为什么这不起作用吗? (我正在使用 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
如果我使用变量,搜索不匹配对我来说绝对没有意义......
最佳答案
看起来 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");
关于Javascript 正则表达式匹配失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13471842/