Überprüfen Sie, ob die Zeichenfolge einen Buchstaben enthält (Javascript/jquery)
Lesezeit: 3 Minuten
Wie kann ich überprüfen, ob eine Zeichenfolge einen Buchstaben in Javascript enthält?
Ich verwende dies derzeit, um zu überprüfen, ob die Zeichenfolge Zahlen enthält:
jQuery(function($){
$('body').on('blur change', '#billing_first_name', function(){
var wrapper = $(this).closest('.form-row');
// you do not have to removeClass() because Woo do it in checkout.js
if( /\d/.test( $(this).val() ) ) { // check if contains numbers
wrapper.addClass('woocommerce-invalid'); // error
} else {
wrapper.addClass('woocommerce-validated'); // success
}
});
});
Ich möchte jedoch, dass es sieht, ob es irgendwelche Buchstaben enthält.
Das würde nur auf Kleinbuchstaben prüfen. /[A-Za-z]/
– Joel Hager
1. Mai 2020 um 20:37 Uhr
@JoelHager -> aber es gibt /i Flagge
– Arek – Krakiewicz.pl
22. März 2021 um 9:56 Uhr
Arnab_Datta
Sie müssen reguläre Ausdrücke verwenden, um dies zu überprüfen: –
var regExp = /[a-zA-Z]/g;
var testString = "john";
if(regExp.test(testString)){
/* do something if letters are found in your string */
} else {
/* do something if letters are not found in your string */
}
Können Sie bitte erklären, warum wir das ‘g’ am Ende des regulären Ausdrucks brauchen?
– Asmat Ali
17. Dezember 2020 um 12:01 Uhr
@AsmatAli /g nicht erforderlich, da wir nur interessiert sind, wenn mindestens 1 Buchstabe in der Zeichenfolge enthalten ist
– ellockie
23. März 2021 um 1:25 Uhr
Ich denke, das funktioniert nur für lateinische Zeichen?
– emvaisiert
17. Mai 2021 um 1:20 Uhr
ACHTUNG, unbedingt das „g“ entfernen! Das Hinzufügen des “g” führt dazu, dass die Regex manchmal fehlschlägt. Versuchen Sie, den genauen Code in dieser Antwort zu kopieren und ihn in eine for-Schleife einzufügen, die 100 Mal ausgeführt wird. Von den 100 Malen schlägt es 20 Mal fehl, dass keine Buchstaben gefunden wurden. Wie oft es fehlschlägt, scheint von dem zu testenden Eingabetext abzuhängen. Ich habe keine Ahnung, warum das so ist.
– Zug
19. März um 0:35 Uhr
Dies funktioniert nur für Buchstaben und nicht, wenn Sie Symbole wie € oder $ haben
– De Bonheur
25. März um 3:11
ellockie
/[a-z]/i.test(str)
Kehrt zurück:
true – wenn mindestens ein Buchstabe gefunden wird (auf jeden Fall dank der /i Flagge)
false – Andernfalls
/i – Flag ohne Berücksichtigung der Groß-/Kleinschreibung
(/g – globales Flag (erlaubt mehrere Übereinstimmungen) – in diesem Szenario wäre es zumindest redundant, wenn nicht sogar schädlich für die Performance. Außerdem setzt es die lastIndex Eigenschaft von Regex (wäre von Bedeutung, wenn Regex als Konstante / Variable verwendet und mehrere Tests durchgeführt würden))
String.prototype.includes()
?– Yevhen Horbunkov
1. Mai 2020 um 20:12 Uhr
/[a-z]/i.test(str)
– ASDFGorte
1. Mai 2020 um 20:14 Uhr
Das würde nur auf Kleinbuchstaben prüfen.
/[A-Za-z]/
– Joel Hager
1. Mai 2020 um 20:37 Uhr
@JoelHager -> aber es gibt
/i
Flagge– Arek – Krakiewicz.pl
22. März 2021 um 9:56 Uhr