Ich möchte das Feld der Telefonnummer validieren und nur Nummern zulassen, die mit den folgenden Ziffern 77, 71, 73 beginnen.

Wie kann ich das in der von mir erstellten Anfrage implementieren?

public function rules()
    {
        return [
            'name'=>'required',
            'password'=>'required|min:6',
            'phone'=>'required|digits:9',
        ];
    }
2
Fateh Alrabeai 23 Feb. 2020 im 09:46

3 Antworten

Beste Antwort

Eine mögliche Lösung wäre die Verwendung von Regex.

 'phone' => ['required', 'regex:/^((71)|(73)|(77))[0-9]{7}/']
  1. Ich gehe davon aus, dass Ihre Telefonnummer 9 Stellen hat, also habe ich {7} // (71 | 73 | 77) 2 Stellen + 7 Stellen = 9 Stellen verwendet
  2. Beachten Sie, wenn Sie OR verwenden möchten, sollten Sie ein Array verwenden, anstatt Regeln mit | zu trennen
1
Ali Sharifineyestani 23 Feb. 2020 im 09:03

Sie können Regex verwenden, um eine Telefonnummer wie folgt zu validieren:

'phone' => 'required|regex:/(01)[0-9]{9}/'

Dadurch wird überprüft, ob die Eingabe mit 01 beginnt und gefolgt von 9 Zahlen. Bei Verwendung von Regex benötigen Sie keine Regeln für die numerische oder Größenüberprüfung.

1
Talha F. 23 Feb. 2020 im 06:52

Sie sollten hier nur eine Regex-Lösung verwenden, z.

var numbers = [771234567, 128675309];
console.log(/^(?:71|73|77)\d{7}$/.test(numbers[0]));
console.log(/^(?:71|73|77)\d{7}$/.test(numbers[1]));
1
Tim Biegeleisen 23 Feb. 2020 im 06:48