Ü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.

  • 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


Benutzeravatar von Arnab_Datta
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

Benutzeravatar von ellockie
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))

Notiz:

/[a-z0-9]/i.test(str)

würde mit jedem alphanumerischen übereinstimmen.

Wenn man auch Unterstützung für Nicht-ASCII-Buchstaben hinzufügen möchte, kann man sie verwenden Escapezeichen für Unicode-Eigenschaften.

const str_1 = '大阪';
const str_2 = '123';

console.log(/\p{L}/u.test(str_1)); // true
console.log(/\p{L}/u.test(str_2)); // false

Mozilla wäre ein besserer Ort, um zu überprüfen

Derzeit ist „Typ“ in beiden nicht enthalten Reservierte Schlüsselwörter oder Zukünftige Schlüsselwörter

Benutzeravatar von De Bonheur
De Bonheur

du kannst das:

 export function containsCaracter(value) {
      return isNaN( +value / 1) || 
          value.includes('+') || value.includes('-') ;
    }

1405100cookie-checkÜberprüfen Sie, ob die Zeichenfolge einen Buchstaben enthält (Javascript/jquery)

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy