使用jQuery从var中自动转义字符

时间:2015-09-28 14:27:50

标签: javascript jquery regex

首先,我不确定我是否正确地提出了我的问题。如果需要,请随时纠正我。

我的问题:

我在jQuery中创建了一个名为var siteTitle的变量。此变量可供其他.js文件使用,然后传递回.html页面。

这一切都很有效,除了var siteTitle包含某些需要转义的字符 之外,没有任何问题。 (引用,单引号和&符号具体)

我想要做的是使用一些jQuery来搜索特定的dom元素,看看它是否正在使用这些字符中的任何一个然后自动转义它们。

我已经搜索了一些类似的功能,似乎无法找到我需要的东西......我看到的壁橱理念是这样的。它不完全是我需要的东西,但它就像我在寻找的东西。

pathto: function(path, file) {
    var rtrim = function(str, list) {
    var charlist = !list ? 's\xA0': (list + '').replace(/([\[\]\(\)\.\?\/\*\{\}\+\$\^\:])/g, '$1');
    var re = new RegExp('[' + charlist + ']+$', 'g');
    return (str + '').replace(re, '');
    };

所以,我正在尝试编写一个函数,它会自动转换那些要转义的字符或它们的html等价物。

因此,如果{d}元素中使用了var siteTitle

<h1 class="titleText">' + siteTitle + '</h1>

我需要能够确保在该元素中转义任何字符。

这是一个jsFiddle,它显示我正在尝试做什么...... https://jsfiddle.net/bbyrdhouse/5jb2fdsr/1/

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

由于您正在使用jquery,请使用.text()函数将值设置为HTML。它会适当地逃脱它。

var siteTitle = 'My Site "Title"';
$my('.titleText').text(siteTitle);

另外,在你的小提琴中,siteTitle变量不是你想象的那样,因为第二个引号关闭了那个值,因为它还没有被转义。我在我的例子中用单引号将其包装起来。

Updated fiddle