为什么我的正则表达式实现不尊重时间?
HTML模板开始为{} @bigfoot通过 我的代码运行它之后它是{*}大脚为什么我的正则表达式实现不尊重时间?
如何看第二个正则表达式得到前首先做了什么?为什么?
html = html.replace(new RegExp("{@" + prop + "}", "g"), object[prop]);
html = html.replace(new RegExp("@", "g"), "*");
第一个表达式不正确。
在正则表达式中使用大括号来指定给定捕获模式的特定重复计数。
要匹配大括号,你应该逃避它们。
html = html.replace(new RegExp("\\{@" + prop + "\\}", "g"), object[prop]);
wtf -3?是的,大括号DO工作得很好。我正在测试脚本注入,并以某种方式搞砸了它,所以我试着把它解决了最基本的问题。 -3? – user1472219 2012-07-13 14:49:03
问题是你拿出了太多的细节。尝试在jsfiddle.net上创建一个包含所有已定义变量并重新创建问题的示例。 – BNL 2012-07-13 15:16:04
idk它当然在那里工作。 http://jsfiddle.net/XPM8j/ – user1472219 2012-07-13 15:21:37
我创造了这个:http://jsfiddle.net/kxTs5/,但我不能重新创建您的问题。
然后我创建了http://jsfiddle.net/kxTs5/2/;它做到了这一点:o)
在第二个例子中,prop
可能是一个打字错误,或者其他的东西,但它指的是文本中不存在的东西,所以没有匹配,所以没有改变。
我建议你自由使用的console.log
,以确保你要匹配你以为你匹配
感谢您的+1,但我的第一个回答实际上是不正确的。问题是由于'prop'不符合源文本中的任何内容...... *可能*在代码中某处出现错字。 – Dancrumb 2012-07-13 15:50:05
什么是'prop'的价值? – Dancrumb 2012-07-13 14:28:52
各种价值观,不要疯狂。名称,my_address,favorite_color – user1472219 2012-07-13 14:49:56