2

そのような要素がまだない場合、小さなJavascript/Jquery関数を使用して要素をテキストに挿入しています。

コードは次のようになります。

$(document).ready(function () {
$(function () {
    $(".replaceText").html(function (i, text) {
        if ($('.replaceText > span.dbOrange').length) {
            return;
        }
        else {
            return text.replace(/\w+\s\w+/, function (match) {
                return '<span class="dbOrange">' + match + '</span>';
            });
        }
    });
});

});

これは、10 件中 9 件でうまく機能します。最初の 2 つの単語は、オレンジ色の太字でスタイル設定されています。ただし、2 番目の単語に ä ö ü のようなウムラウトが含まれている場合、正規表現はこの文字で壊れ、単語がそこで終わるように見えます。

よりフェイルセーフなソリューションを手伝ってもらえますか?

敬具

4

3 に答える 3

1

これを試して:

/\S+\s\S+/

\S は空白以外の文字に一致します。

于 2012-10-11T17:42:06.903 に答える
1

\w[A-Za-z0-9_]は、ウムラウト文字を含まないの短縮形です。他の範囲を含めたい場合は、許容できる文字の明示的なセットを作成する必要があります。

于 2012-10-11T14:09:53.720 に答える
0

はい、これは Javascript 正規表現の英語以外の文字によくある問題です。によって認識されません\w\uXXXXX各特殊文字のUnicode 表現を個別に指定する必要があります

于 2012-10-11T14:09:22.847 に答える