Javascript 正则表达式匹配失败

标签 javascript regex match

有人可以解释为什么这不起作用吗? (我正在使用 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");

http://jsfiddle.net/CpEjA/

关于Javascript 正则表达式匹配失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13471842/

相关文章:

javascript - 也对树的子级应用过滤器

javascript - 将值从 iOS 传递到 uiWebView

javascript - 从旧的 html dom 元素创建 json

javascript - 如何在javascript中计算字符串中的非空行

PHP 检查字符串是否在带有 preg_match 的序列中最多包含 30 个字母/数字

javascript - 使用正则表达式匹配一次空字符串、逗号、连字符或下划线

javascript - jQuery - 在 DIV/或可排序元素中拖动元素

javascript - 改变点击

regex - 用于从变量中提取 UUID/PARTUUID 的 BASH 脚本

python - 如何在 python 2.7 中使用 re.UNICODE?