-6

私はこれを使用しました...私はこれをいくつかのサイトで見ました..しかし、それは私をあまりよく助けませんでした。

if(preg_match("/^[A-Za-z0-9-_\",'\s]+$/",$newPass)) {
    //is valid..
}
4

1 に答える 1

1

文字列に少なくとも1つの英数字と非英数字の文字列が含まれているかどうかをテストする場合は、次の正規表現を使用します。

/^(?=.*[a-z0-9])(?=.*[^a-z0-9])/i

別れる:

  • /正規表現の開始
  • ^文字列の先頭に一致する
  • (?=以下がそこに存在する場合:
    • .*何でも(改行を除く)、その後
    • [a-z0-9]英数字
  • )先読みの終わり
  • (?=そして、そこに以下が存在する場合:
    • .*何でも(改行を除く)、その後
    • [^a-z0-9]英数字以外の文字
  • )先読みの終わり
  • /正規表現の終わり
  • i大文字小文字を区別しません

利用方法:

if(preg_match("/^(?=.*[a-z0-9])(?=.*[^a-z0-9])/i",$newPass)) {
    //is valid..
}

文字と数字の両方を含める必要がある場合は、最初の先読みを2つに置き換えます。

/^(?=.*[a-z])(?=.*[0-9])(?=.*[^a-z0-9])/i
于 2012-12-20T19:16:34.443 に答える