2016-09-19 3 views
1

^[a-zA-Z'.\s]{2,40}$"は私のプロジェクトのfirstnameフィールドに使用される元の正規表現です。このregexを修正して、 'テスト'を入力として許可しないようにします。Regexは文字列のみを許可しますが、 "test"という単語はありません

"^(?!^test$)(^.*$)");" 'test'という単語を除外しても問題ありませんが、空白は許可します&数字です。だから、文字列だけを入力として許可するが、 'test'という単語を許可しない正規表現とは何か?すなわち、ファーストネームは「テスト」ではないだろうか?

+0

あなたの最初の正規表現でも空白を使用できます。 'test'と空白のマッチングを避けたいのであれば' ^(?! test $)[a-zA-Z '。] {2,40} $ ' –

+0

ありがとう。空白は大丈夫ですが、数字とファーストネームは避けたいだけです。「テスト」はできません。 firstnameはtesdtkkkkdでもいいですが、 'test'することはできません – rohit

+0

そして、あなたの現在の正規表現 ''(?! test $)[a-zA-Z '。\ s] {2,40} $ 'にlookaheadを追加してください。この正規表現は数字に一致しません。 –

答えて

2

あなたは

^(?!test$)[a-zA-Z'.\s]{2,40}$ 

regex demoを参照してください使用することができます。

詳細

  • ^ - 文字列
  • (?!test$)の開始 - 2〜40のASCII文字であるシンボル、'.または空白
  • - 文字列が等しくない test
  • [a-zA-Z'.\s]{2,40}することができます
  • $ - 文字列の末尾
+0

こんにちは、どのように私は 'テスト'のすべての組み合わせを除外カムですか? test、test、TEst、tEstなどを意味します。また、特殊文字を許可したくありません。 – rohit

+0

正規表現がサーバー側で実行されている場合、 '(?i)^(?! test $)[a-zA-Z ' 。\ s] {2,40} $ 'となります。そうでなければ、 '^(?![TT] [eS] [sS] [tT] $)[a-zA-Z '。\ s] {2,40} $' 。 –

+0

ありがとうございました。 – rohit

関連する問題