Ich habe versucht, eine mehr oder weniger komplexe RegEx für JS zu schreiben. Es besteht alle meine Tests außer zwei und ich weiß nicht warum. Dies ist der CodeWie verwende ich den "or" Befehl in JS RegEx richtig?
function telephoneCheck(str) {
regEx1 = /^[1]\s(\d{3}[-]){2}\d{4}|(\d{3}[-]){2}\d{4}$/;
regEx2 = /^\d{10}$/;
regEx3 = /^[1]\s(\d{3}\s){2}\d{4}|(\d{3}\s){2}\d{4}$/;
regEx4 = /^[1]\s[(]{1}\d{3}[)]{1}\d{3}[-]{1}\d{4}|[(]{1}\d{3}[)]{1}\d{3}[-]{1}\d{4}$/;
regEx5 = /^[1]\s[(]{1}\d{3}[)]{1}\s\d{3}[-]{1}\d{4}|[(]{1}\s\d{3}[)]{1}\d{3}[-]{1}\d{4}$/;
if (regEx1.test(str) || regEx2.test(str) || regEx3.test(str) || regEx4.test(str) || regEx5.test(str)) {
return true;
}
else {
return false;
}
}
und das sind die beiden Tests es nicht richtig übergeben (beide sollen als false
zurückkommen, aber ich bekomme true
statt): telephoneCheck("2(757)622-7382")
und telephoneCheck("(555-555-5555")
. Meine Frage ist, wie ich den |
(oder) -Operator richtig benutze (ich denke, das würde meinen Code viel schöner aussehen lassen) und wie ich einen Ausdruck innerhalb von regEx beschreiben könnte, um ein bestimmtes Zeichen zu finden (zB die "1" am Anfang) der Nummer)? Ich habe es mit [1]{1}
oder [1]$
getan, aber es schien nicht zu funktionieren. Danke für Hinweise und Anregungen!
Zu viele Fragen: konzentrieren Sie sich auf eins. – trincot
Keine Notwendigkeit für '{1}'. – trincot