2017-12-28 15 views
-6

ユーザからの入力を1つまたは複数の単語に一致させたい。これは、スパムや誤った入力を避けるためです。文字制限で数字と特殊文字を含まない複数単語の正規表現

I want to finish... 

:私は正確にその文字列を剪定する正規表現にしたい

I45 w4nt t0 f1n1sh my_$4pp &s00n* 

:私はこのような文字列があるとします。どうすればこのことに行きますか?おかげ

+1

何をしましたか?私たちにいくつかのコードを教えてください。私には、4 = aと1 = iのようないくつかの置換規則が必要であり、その後にいくつかのスペルチェックが必要だと思われます。 – Casperah

+2

これは、はるかにRegexの問題ではありません。最善の方法IMHOは、素朴ではあるが、文字に数字/文字のマップを持たせ、このマップを使用して文を置き換えることになる。 –

+0

@Casperah、私は数字や特殊文字列の置換を望んでいないが、私はユーザーが入力フィールドにこれらを入力できないようにしたい。ありがとうございました –

答えて

0

オーケー、あなたはテキストを検証する:

この正規表現は、あなたが望むものをやっているように見える:

^(?=.{1,50}$)(\w+[,.!?&']?\s?)+$ 

それは、オプションの句読点とオプションのスペースが続く単語を受け入れます。

^(?=。{1,50} $)は文字の制限を制御します。ここでの制限は1文字以上、最大50文字です。 残りはテキストの検証です。

これは次のようなものを受け入れます: 終了します。 私は素晴らしいです!お元気ですか? 私は

を気にしないしかし、それは受け入れません:

私は本当に#*その男に

警告を$でした!!これは実際にはスパムを避けるには簡単すぎる方法であり、ユーザーはそれを過ぎ去る方法をかなり早く学ぶでしょう。

0

私はあなただけを考えていると思う:

^[a-zA-Z\s\n]{1,150}$ 

これは、(あなたの文字数)

を1と150倍の間で、文字、スペースや改行文字にマッチします、私はあなたと仮定しています数字や特殊文字は不要ですが、これよりも複雑なものが必要な場合は、正規表現以外のものを見ることができます。

関連する問題