0

そのため、サイトを構築し、特定の単語に対して一種のフィルターをテストしようとしていますが、どの機能をどの言語で使用するのが最適かを判断しようとしています。私は少し調査を行いましたが、PHP では strpos() 関数を使用できます。たとえば、次のようになります。

if (strpos($checkstring, 'geordie') !== false) {
   $checkstring = 'invalid name';
 }

同じことを達成するために使用できる適切な JQuery 関数があるかどうかはわかりません。基本的に、友達が私の名前やニックネームを使用するのをブロックできるようにしたいので、小文字と大文字を含む「geordie」のすべてのバリエーションを含め、「GeoRdie」またはその影響を与える何かを使用してそれを乗り越えますが、私の完全なニックネーム「geordie dave」または「geordie ****」、さらには「geordie dave is a ****」であるバリエーションを停止します。

これはおそらく少し複雑なことだと思いますが、おそらく名前の配列を使用する方法があるに違いありません。

使用する関数に関するヘルプは素晴らしいでしょう。誰かが使用できるコードの例を教えてくれれば、それも有益です。

4

3 に答える 3

2

おそらく、javascript と php (クライアント側とサーバー側) で行う必要があります。に相当する JavaScriptstrposindexOf. javascript だけでチェックすると、誰かがポスト パケットを偽造したとしても、サーバーに受け入れられる可能性があります。1 か所だけでチェックインする場合は、サーバー側にしますが、使いやすさのために両方を使用することをお勧めします。

于 2013-07-28T11:54:02.837 に答える
1

String#indexOf(String)JavaScript では、正確な文字列の一致、またはRegExp#test(String)より複雑な一致に使用できます。

if (str.indexOf("geordie") !== -1) {
    // `str` contains "geordie" *exactly* (doesn't catch "Geordie" or similar)
}

if (/geordie/i.test(str)) {
    // `str` contains "geordie", case-insensitive
}

そして、Alfie が言ったことを 2 番目に挙げます。クライアントの要求はスプーフィングされる可能性があるため、クライアントでこれを行うことはできません。クライアント側の検証は、純粋に優れたユーザー エクスペリエンスを実現するためのものです。サーバー側の検証は常に必要です。

于 2013-07-28T11:54:16.153 に答える
1

$checkstring 変数で PHP の strtolower 関数も使用する必要があると思います。

于 2013-07-28T11:57:55.757 に答える