Ho un modello di espressione regolare, che convalida per un numero a tre cifreJavascript RegEx corrispondenza parziale
/^\d{3}$/.test("123") // true
/^\d{3}$/.test("123.") // false
voglio usare questa espressione regolare come una restrizione di ingresso su una casella di testo.
Fondamentalmente, se il nuovo valore corrisponde, autorizzo il carattere digitandolo, altrimenti lo prevengo.
Il problema è che nessun valore corrisponderà mai, perché "1" non è una corrispondenza completa e non mi consente di digitarlo.
È un modo per testare una corrispondenza parziale per un regEx in javascript?
/^\d{3}$/.test("123") // true
/^\d{3}$/.test("12") // "partial match"
/^\d{3}$/.test("a12") // false
EDIT
\ d {3} era solo un esempio. Ho bisogno di usare una regex di posta elettronica o un telefono regex come limitazione di input.
"email" // true
"[email protected]" // true
"[email protected]@" // false
"@yahoo.com" // false
EDIT 2
Ho un plugin di casella di testo con limitazione di ingresso basata su un'espressione regolare.
L'espressione regolare può essere qualsiasi cosa, un colore esadecimale Regex, ad esempio: (#) {1} ([a-FA-F0-9]) {6}
ho necessità di impedire all'utente di inserire caratteri che non corrispondono alla regex.
Ad esempio, se la casella di testo è vuota, il primo carattere consentito sarà "#".
Ma se provo il carattere "#" contro la regex, restituirà "false", perché "#" da solo non è valido.
/^(#){1}([a-fA-F0-9]){6}$/.test("#") // false
Ma, allo stesso tempo, "#" è parziale valida perché rispetta il formato regex (e dovrei permettere all'utente di digitare esso)
cosa ho bisogno di sapere è se posso verificare se una stringa è una corrispondenza parziale di un'espressione regolare, quindi posso consentire all'utente di digitare il carattere.
/^(#){1}([a-fA-F0-9]){6}$/.test("#") // is a partial match, allow type
/^(#){1}([a-fA-F0-9]){6}$/.test("#0") // is a partial match, allow type
/^(#){1}([a-fA-F0-9]){6}$/.test("#00") // is a partial match, allow type
/^(#){1}([a-fA-F0-9]){6}$/.test("#000") // is a partial match, allow type
/^(#){1}([a-fA-F0-9]){6}$/.test("#0000") // is a partial match, allow type
/^(#){1}([a-fA-F0-9]){6}$/.test("#00000") // is a partial match, allow type
/^(#){1}([a-fA-F0-9]){6}$/.test("#000000") // is a partial match, allow type
/^(#){1}([a-fA-F0-9]){6}$/.test("#000000D") // is not a match, prevent typing
Hai una risposta alle tue domande? – user153
No, nessuna risposta – Catalin
Ho riscontrato problemi simili :) – user153