0

我必须替换 html 中的所有特殊字符,并且我创建了一个特殊字符数组,其中包含特殊字符和类名的键值对。但这不起作用。我已经尝试过,以下是代码和小提琴链接。

var SpClass = new Array();
SpClass["&"] = "ampClass";

function temp() {
    var str = "";
    var tempLen = SpClass.length;
    var k = 0;
    var htmlForRemoveChar = $("#test").html();
    for (var splChar in SpClass) {
        if (k > tempLen) {

            $("#test").html(htmlForRemoveChar);
        }
        var tempChar = "/" + splChar + "/g";
        alert(htmlForRemoveChar);
        htmlForRemoveChar = htmlForRemoveChar.replace(tempChar, '<span class="specialChar "' + SpClass[splChar] + '"">W</span>');
        alert(htmlForRemoveChar);
        k++;
    }
    $("#test").html(htmlForRemoveChar);
}


<div id="test">this is test & i am doing testing</div>
<input type="button" onclick="temp();" value="Remove&">

http://jsfiddle.net/aps123/y4McS/1/

4

2 回答 2

2

您只需要更改此行:

var tempChar = "/" + splChar + "/g";

至:

var tempChar = new RegExp(splChar, 'g');

目前,您正在替换文字String,例如'/a/g'. 如果您需要动态创建正则表达式的内容,那么您需要使用RegExp. 如果内容是静态的,那么您可以使用正则表达式文字。

于 2013-07-31T13:01:34.513 回答
1

尝试替换replace(tempCharreplace(new RegExp(splChar, 'g').

看起来您使用的是字符串文字,而不是正则表达式文字。正则表达式文字是这样的:

var x = /x/g;
于 2013-07-31T13:01:10.567 回答