/ / RegExを使って文字列の長さを制限する - php、regex

RegEx - php、正規表現で文字列の長さを制限する

私はこれを書いた 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})$

regex101.comのテストを参照


回答№2の場合は0

あなたはこの正規表現を使うことができます:

"/^(0d{9}|9d{8})$/"

これにより、文字列の長さは0から始まる場合は正確に10文字、9から始まる場合は正確に9文字になります。