-3

単語の最初の文字を取得するスクリプトを作成しようとしていますが、一部の単語は除外されています。そのため、これらの単語をフィルタリングするには、正規表現を使用して何も置き換えません。ここに私のコード:

$(document).on("keyup","input[name=name]",function(){
    var val = $(this).val().replace("/((golfpark|golfcourse|course|golfclub|golfbaan|golf|en|&|country|club|gc)|[\s]([^\s]{0,3})[\s]|[\s])/i","").substring(0,1).toUpperCase();
    $("select[name=char_link]").val(val);
});

たとえば、入力フィールドに「Golfbaan & country club demo」と入力した場合、出力は「demo」の「D」でなければなりません。これがjsfiddleの例です: http://jsfiddle.net/qCUrH/

4

3 に答える 3

2

問題は、 の後に不要なセミコロンがあることですval()。あなたのコードは「Uncaught SyntaxError: Unexpected token .」をスローしています。

変化する:

$(this).val();.replace(...);

に:

$(this).val().replace(...);

さらに、正規表現を機能させるには、引用符を削除する必要があります。

変化する:

.replace("/MyPattern/i", ...);

に:

.replace(/MyPattern/i, ...);

JSFiddle の例

于 2013-06-10T08:28:04.013 に答える
1

試す

var val = $(this).val().replace(/((golfpark|golfcourse|course|golfclub|golfbaan|golf|en|&|country|club|gc)|[\s]([^\s]{0,3})[\s]|[\s])/ig,"").substring(0,1).toUpperCase();

いいえ;_$(this).val();

"また、正規表現の囲みを削除する必要がありますreplace()
また、正規表現にグローバルフラグがありません/reged/ig

デモ:フィドル

于 2013-06-10T08:27:49.813 に答える
1

置換する最初の引数として文字列を渡しています。正規表現を囲む " 引用符を削除すると、正規表現として扱われます。

$(document).on("keyup","input[name=name]",function(){
    var val = $(this).val().replace(/((golfpark|golfcourse|course|golfclub|golfbaan|golf|en|&|country|club|gc)|[\s]([^\s]{0,3})[\s]|[\s])/i,"").substring(0,1).toUpperCase();
    $("select[name=char_link]").val(val);
});
于 2013-06-10T08:30:39.543 に答える