Ich muss erkennen, ob ein Wert in einem Eingang enthält die Buchstaben "sn" gefolgt von einem Bindestrich (nicht sofort, die Eingabe wird sn12345 - mehr Text) und wenn ja, Führen Sie dann eine Funktion aus, die einwandfrei funktioniert, es sei denn, der Benutzer gibt Wörter wie "ist nicht" oder "war nicht" ein.jQuery überprüfen, ob die Zeichenfolge, wenn mit anderen Buchstaben vorangestellt
Gibt es einen Weg, dass ich erkennen kann, ob es Buchstaben vor "sn" gibt und ob die Funktion ausgeführt werden soll oder nicht. Ich habe erwogen, nach dem Apostroph zu suchen, aber einige Benutzer sind ziemlich faul, wenn sie die betreffende Eingabe eingeben und sie nicht verwenden.
var lowercase_name = subject.toLowerCase();
var has_sn = lowercase_name.indexOf("sn") > -1;
if(has_sn === true){
var has_hyphen = lowercase_name.indexOf("-") > -1;
if(has_hyphen === false){
//alert user missing hyphen
};
return false;
}
}
Ich habe auch überprüft prüfen, ob die „sn“ durch ein Leerzeichen vorangestellt wird, aber wenn es am Anfang des Eingangs verwendet wird (was es höchstwahrscheinlich in diesem Fall), die scheitern.
Auf diese Weise getrennt nach 'sn' und' -' zu suchen macht keinen Sinn - denn wie du es gerade machst, braucht es nur ein '-' _anywhere_ in der Zeichenkette. Wenn du nach 'sn-'suchen willst, warum benutzt du das dann nicht für indexOf?/Ein regulärer Ausdruck könnte dafür besser geeignet sein; es erlaubt Ihnen, vor dem "sn" nach einer _word boundary_ zu suchen und den sn-at-anfangsteil mit dem Start-of-line-Anker '^' zu integrieren. – CBroe
Ich muss nur nach einem Bindestrich suchen, wenn sn existiert, aber manchmal meine Benutzer als Leerzeichen nach dem sn. Das Skript, so wie es ist, funktioniert gut, außer wenn Leute Wörter benutzen, die sn in ihnen haben. – tatty27
Wenn Sie mit regulären Ausdrücken enden, finden Sie möglicherweise nützlich: http://StackOverflow.com/Questions/641407/javascript-negative-lookbehind-equivalent –