私はこれを書いた regex
私のフォームから入力番号を確認するために:
if (!preg_match("/^0d{10}+|^9d{9}+/",$_POST["number"])){
echo "Error";
}else{
echo "Ok";
}
このコードは最小の長さをチェックしますが、長さが10または9文字以上の場合、この正規表現は機能しません!
私は何をすべきか ?私が確認する必要があります strlen
Regexまたは私は最大長を制限することができます後?
更新:
文字列の長さは正確に10文字にする必要があります0から始まり、9で始まる場合は正確に9文字でなければならず、別の方法ではfalseを返します(多かれ少なかれ、長さは異なります)。
回答:
回答№1は0場合によっては、最後に文字列をアンカーするだけです $
。また、 +
数値限定子の後に:
^(?:0d{9}|9d{8})$
回答№2の場合は0
あなたはこの正規表現を使うことができます:
"/^(0d{9}|9d{8})$/"
これにより、文字列の長さは0から始まる場合は正確に10文字、9から始まる場合は正確に9文字になります。