21

<と>を外部区切り文字として受け入れて、それらの間にあるすべてのコンテンツを取得する正規表現を取得しようとしています。

だからそのようなコンテンツ

< tfdsfa  >

つかむ必要があります。

<と>の文字か何かをエスケープする必要がありますか?

スクリプトによって生成された正規表現:

/<[^(>)]*>/g

ファイルからのコード:

data.method.highlight = function() {
    var x = data.syntax,
        text = data.$.span.html();
    for (var i=0, len = x.length; i < len; i++) {
        var rx;
        if (x[i].range) {
            rx = new RegExp(x[i].tag[0] + "[^(" + x[i].tag[1] + ")]*" + x[i].tag[1], "g");
            console.log(rx);
        }
        else {
            var temprx = x[i].tag[0];
            for (var z = 1; z < x[i].tag.length; z++) {
                temprx += "|" + x[i].tag[z];
            }
            rx = new RegExp(temprx, "g");
        }
        text = text.replace(rx,function (match) {
            console.log("looping - range");
            return '<span class="' + x[i].class.default + '">' + match + '</span>';
        });
        data.$.span.html(text);
    }
};
4

2 に答える 2

24

正規表現内のメタ文字もメタ文字<もありません。>

これは私のために働きます:

'<foo> and <bar>'.match(/<[^>]*>/g); // ["<foo>", "<bar>"]
于 2012-04-10T19:22:18.340 に答える
-1

結果をHTMLに挿入しようとしたときに、ブラウザがそれがのような有効なHTMLタグではないと判断した場合に問題が発生する可能性があります<blablabla>

于 2016-08-23T11:38:51.657 に答える