6

数字、文字、特殊文字を使用できますが、HTML テキスト ボックスには%とがあります。_私はパターンを持っています/[a-zA-Z0-9!@#$^&*()-+=]/。上記の2つを除くすべての特殊文字をリストする必要があるため、これは最善の方法ではないと思います。すべての特殊文字をリストする必要がなく、上記の 2 つを含めない方法はありますか? ところで、私はjavascript正規表現を使用しています。

デモについては、 http://jsfiddle.net/ce8Th/を参照してください。

助けてください。

4

4 に答える 4

3

その複雑なループは必要ありません。replace文字列全体を直接呼び出すだけです。

$(this).val(function (i, v) {
    return v.replace(/%|_/g, '');
});

これがあなたのフィドルです:http://jsfiddle.net/ce8Th/1/

于 2013-01-14T01:58:47.733 に答える
2

逆のこともできます。

/[%_]/

if (pattern.test( ....

必要がなければ正規表現を使用しないのも良いことですが、この場合は大きな違いがあります。

if ("%_".split().indexOf(text.charAt(i)) > -1) {
于 2013-01-14T02:00:02.290 に答える
2

ホワイトリストは常に最適です。長さ修飾子と開始文字と終了文字を追加する以外は、持っているものを保持することをお勧めします。

/^[a-zA-Z0-9!@#$^&*()-+=]+$/
于 2013-01-14T02:02:30.553 に答える
1

LIKE部分一致の検索を含むMySQLクエリにこのユーザー入力を使用していると推測するのは正しいでしょうか?

その場合、文字を除外しないでください。代わりに、サーバー側でそれらをエスケープします。例えば:

$output = str_replace(Array("%","_"),Array("\\%","\\_"),$input);
于 2013-01-14T02:02:44.007 に答える