Ich versuche, ein Zeichenfolgenfeld zu überprüfen, um nach bestimmten Zeichen zu suchen, und einen Fehler auszulösen, wenn einer von ihnen vorhanden ist.Dies ist der reguläre Ausdruck, den ich verwende :Unterschied zwischen - und - oder 'und' oder "und"
var regex = /^[^'\\\/\:\*\?"<>\|-]*$/; // In ServiceNow
Der JavaScript-Code in ServiceNow
Plattform ist wie folgt:.
function onChange(control, oldValue, newValue, isLoading, isTemplate) {
if (isLoading || newValue === '') {
return;
}
var regex = /^[^'\\\/\:\*\?"<>\|-]*$/;
var ans = g_form.getValue('u_native_renaming_suffix');
if(!regex.test(ans)){
alert('Please enter valid string');
return;
}
}
Es ist perfekt für alle enthaltenen Zeichen Arbeits wenn jedoch längliche Bindestrich (–
) oder eine kurvige einfachen oder doppelten Anführungszeichen (“
, ”
, ‘
, ’
) (die wir in Apps wie MS Word finden) werden verwendet, anstelle des normalen Bindestrichs oder der Anführungszeichen funktioniert diese Validierung nicht. Das heißt, es wird ein Fehler ausgelöst, wenn normale Bindestriche oder Anführungszeichen verwendet werden, aber nicht, wenn längere Bindestriche oder kurvige Anführungszeichen verwendet werden.
Ich habe sogar versucht, die neuen Charaktere in den regulären Ausdruck kopier einfügen, aber sie sind nur zu werden als die normalen ersetzt oder behandelt, das heißt:
/^[^'’\\\/\:*\?"”<>\|-–]*$/
in
dreht/^[^''\\\/\:*\?""<>\|-–]*$/
wenn Ich klicke auf Speichern.
Wie integriere ich die Validierung für diese 3 Zeichen?
Bitte zeigen Sie den Code Ihrer vorgeschlagenen Lösung, wo Sie versucht haben, die Zeichen zu kopieren. – Xufox
Ja, bitte geben Sie den Code an, ohne den Kontext, in dem die Regex verwendet wird, ist es schwierig, eine konkrete Antwort zu geben – Taegost
Ich wette, das wird ein Duplikat von [Ein Bindestrich in einer Regex-Zeichenklammer?] (http://stackoverflow.com/q/3697202/4642212). – Xufox