suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Der reguläre Ausdruck zur Validierung von Zahlen funktionierte vor meiner Verwendung nicht

Ich möchte meine Zahlen mithilfe von Regex validieren, bevor ich sie verwende, aber es hat nicht funktioniert.

Ich möchte, dass die erste Zahl mit 0 beginnt, gefolgt von 2 oder 5, dann 4 und die restlichen Zahlen bis zu 10Ziffern reichen.

<?php
$str = "0241310102";
$pattern = "([0]{1}[2,5]{1}[4]{1}[0-9]{7})";

if(preg_match($pattern, $str)){
echo "YES";
}else{
echo "NO";
}

?>

P粉690200856P粉690200856468 Tage vor554

Antworte allen(1)Ich werde antworten

  • P粉329425839

    P粉3294258392023-09-14 13:05:30

    1. 您需要将模式锚定到字符串的开头/结尾(^$)。
    2. 单个数字不需要被指定为字符类[0]0
    3. 只有当量词与1不同时才需要指定0{1}0
    4. [2,5]将包括字符类中的逗号→ [25]
    $examples = [
        "0241310102",
        "1241310102",
        "0541310102",
        "0551310102",
        "0241"
    ];
    $pattern = '(^0[25]4[0-9]{7}$)';
    
    foreach ($examples as $example) {
        echo $example, ": ";
        if (preg_match($pattern, $example)) {
            echo "YES", "\n";
        } else {
            echo "NO", "\n";
        }
    }
    

    Antwort
    0
  • StornierenAntwort