Написах това regex
за проверка на входния номер от моя формуляр:
if (!preg_match("/^0d{10}+|^9d{9}+/",$_POST["number"])){
echo "Error";
}else{
echo "Ok";
}
този код ще провери минималната дължина, но ако дължината е повече от 10 или 9 знака, този регекс не може да работи!
Какво трябва да направя ? трябва да проверя с strlen
след Regex или мога да огранича максималната дължина?
UPDATE:
дължината на низа трябва да бъде точно 10 знакаако започнете с 0 и трябва да сте точно 9 знака, ако започнете с 9 и трябва да върнете фалшива по друг начин (повече или по-малко дължина, започнете с различни числа и ...)
Отговори:
0 за отговор № 1Вероятно просто искате да закотвите низа в края с помощта $
, Също така може да изпуснете +
след цифровия количествен израз:
^(?:0d{9}|9d{8})$
0 за отговор № 2
Можете да използвате този регекс:
"/^(0d{9}|9d{8})$/"
Това ще позволи дължина на низа точно 10 знака, ако започва с 0 и трябва да бъде точно 9 знака, ако входът започва с 9.