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(tempCharてみてくださいreplace(new RegExp(splChar, 'g')

正規表現リテラルではなく、文字列リテラルを使用しているようです。正規表現リテラルは次のようになります。

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