RegExp不同于使用简单的regex文字
RegExp differs from using a simple regex literal
我正试图从这样的字符串中提取属性:
var valueAccessor = "function (){return { id:'someId',label:'Some Label',value:PropertyOnModel} }";
当我特别想从上面的string
中获得value
时,特别是使用以下代码:
var value = valueAccessor.match(/function(?=[^}]*value's?:'s?('w+))/im)[1]
我有一个要提升的不同属性的列表,例如label和id,所以我遍历它们,并使用RegExp
动态设置regex。
// Iterate through id, label, value
for(var prop in obj) {
var propRegex = new RegExp('/function(?=[^}]*' + prop + '''s?:''s?(''w+))/im');
var propValue = valueAccessor.match(propRegex)[1];
}
尽管propRegex源与第一个示例中的结构相同,但它返回undefined
,因此意味着我无法提取相对值。
有人能解释一下两者之间的区别吗?我哪里错了?
这是
new RegExp(pattern, flags);
所以你需要放下/
,把im
移出
var propRegex = new RegExp('function(?=[^}]*' + prop + '''s?:''s?(''w+))', 'im');
参考:MDN RegExp构造函数
下面的RegExp似乎格式不正确。
尝试做:
for(var prop in obj) {
var propRegex = new RegExp("function(?=[^}]*" + prop + "''s?:''s?(''w+))", "im");
var propValue = valueAccessor.match(propRegex)[1];
}
相关文章:
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 添加文字和评论功能更新Div
- Regex代码只允许一个空格
- Regex匹配除“”之外的所有字符;.js”;
- RegExp:匹配Javascript中除regex值之外的所有内容
- Javascript RegEx validator
- 使用regex的jquery keydown绑定不会验证撇号和句点
- 制作一个regex来验证只有一个数字的字符串
- 如何计算对象文字中的键
- RegEx JavaScript:数字后的符号提取
- PHP和Javascript之间的Regex差异
- 链接和youtube的Javascript和regex
- 包含圆括号的JavaScript Regex模式
- I'我想放下画布上的文字.帮帮我
- 相当复杂的Regex
- 如何在ng regex中包含qutoes+双引号
- 在javascript中,I'我很难弄清楚如何让regex只替换捕获而不替换匹配
- RegEx将有理文字与小数匹配,但不完全有理文字除外
- RegExp不同于使用简单的regex文字
- 匹配javascript regex中的文字特殊字符