javascript - 将 id 中的冒号替换为\\:

标签 javascript regex salesforce visualforce

我正在处理的页面上的 id 定义了一组以冒号分隔的字符串(例如 thisPage:theForm:address1content)。我无法更改此格式,我正在尝试对 address1content 进行一些验证。

我正在尝试将 address1contentid 传递给函数并执行 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/

相关文章:

javascript - 基本的 Javascript RegExp 用于检测来自 google 的访问者

java - 正则表达式模式匹配第一个和最后一个标记之间的单词,第一个单词是常量

salesforce - Force.com:用户、帐户、角色、配置文件、所有者

javascript - jQuery + setTimeout() + clearTimeout() 在 IE7 和 8 中不起作用

javascript - 在 JavaScript 中发送带有正文的 GET 请求 (XMLHttpRequest)

javascript - 如何使用 jquery 为 slider 创建缩略图

javascript - 日志: function() {} in javascript?是什么

java - 如何在java中为带括号的字符串编写正则表达式?

salesforce - 如何获得更永久的访问 token

salesforce - 如何在 Salesforce 中读取图像 URL 并使用 Salesforce 显示图像