我正在处理的页面上的 id
定义了一组以冒号分隔的字符串(例如 thisPage:theForm:address1content
)。我无法更改此格式,我正在尝试对 address1content
进行一些验证。
我正在尝试将 address1content
的 id
传递给函数并执行 replaceAll
并替换 :
和 \\:
所以我可以做一个 $(id)
。它不起作用。
这是我所拥有的:
function validateContent(text) {
var hardCoded=$('#thisPage\\:theForm\\:address1content').val();
alert(hardCoded);
var regex = new RegExp(":", 'g');
replacedText = text.replace(regex, '\\:');
alert(replacedText);
foundElement= $(replacedText).val();
alert(foundElement);
}
现在变量 hardCoded
正确通过,但我希望能够动态地执行此操作,以便我可以验证多个字段。
如果有帮助,我在 fiddle 中粘贴了一个简化版本:http://jsfiddle.net/nYeJH/
最佳答案
K,因为我的评论实际上回答了这个问题(只读了标题,我知道你需要所有冒号前面都有一个双反斜杠),这是我的答案:
var foundElement= $(text.replace(/:/g,'\\\\:').val();
4 个反斜杠:第一个转义第二个,第三个转义第四个,冒号仍然是冒号,所以。
也就是说,一旦子字符串出现一定次数,正则表达式就会相当慢。您应该对此进行基准测试,但它可能会稍微快一些,并且(也许)更容易阅读使用拆分:
var foundElement = $(text.split(':').join('\\\\:')).val();//4 slashes still
关于javascript - 将 id 中的冒号替换为\\:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12008358/