0

グーグルはあまり助けていないので、ここにいる誰かが私を助けてくれることを願っていますか?

preg_match(‘^(MR|MRS)./s[a-z]/s[a-z]$/i’, $_POST[‘fullname’])

Mr.またはMrs.の敬意を表した名前の後に、任意の数のスペースで区切られた2つのテキスト文字列を使用できる正規表現が必要です。鉱山が機能しておらず、理由がわかりません。前もって感謝します!

4

3 に答える 3

2

正規表現は無効な構文です。同じ区切り文字で開始および終了する必要があります。

preg_match(‘/^mrs?\.\s+[a-z]+\s+[a-z]+$/i’, $_POST[‘fullname’])
............^..........................^

ただし、これは壊れやすい正規表現であることに注意してください。複数の名を使用したり、ミドルネームを使用したり、二重姓を使用したり、名前にアクセントを付けたりすることは珍しくありません。たとえば、Zöeです。

正規表現の説明

/ - start regex
^mr - string starts with mr
s? - optional "s"
\. - period
\s+ - 0 or more whitespace chars (tabs or spaces)
[a-z]+ - 0 or more letters
\s+ - 0 or more whitespace chars (tabs or spaces)
[a-z]+ - 0 or more letters
$ - end of string
/ - end of regex
i - whole regex is case insensitive.
于 2012-10-24T20:15:57.280 に答える
1

[AZ]?[a-zA-Z] {1,30} []?[。]?[']?[]?[a-zA-Z] {1,30} []?[。]?[ ']?[]?[a-zA-Z] {0,30} []?[a-zA-Z] {0,30}

次の名前で動作します。

  • ジェームズ・マシュー博士
  • ジェームズマシュー
  • 博士。ジェームスマシュージョン
  • ジェームズ氏
  • O'本当に

などなど...

于 2014-07-11T17:30:05.600 に答える
-1

これを試して :

preg_match("/^(MR|MRS)\.?(\s*\w*)+$/i", $_POST[‘fullname’])

ドットがオプションでない場合は、「?」を削除してください

于 2012-10-24T20:14:53.957 に答える