function validInteger(theNumber){
var anyNonDigits = new RegExp('\D','g');
if(parseInt(theNumber)&&!anyNonDigits.test(theNumber)){
return true;
}else{
return false;
}
}
Sopra è una funzione che ho scritto per convalidare qualche input. Voglio tutti i numeri interi positivi. Il problema che sto affrontando è con l'oggetto RegExp. Sembra che dovrebbe essere super semplice, ma per qualche motivo non funziona.Utilizzo di un'espressione regolare per convalidare se l'input non ha cifre in esso
Ad esempio se passo 'f5' ottengo vero, ma se passo '5f' ottengo false. Ho anche problemi con il passare dei numeri negativi. -3 non viene catturato anche se stringa la variabile prima di passarla nel RegExp. Posso risolvere il problema aggiungendo "&&parseInt(theNumber)>0
" nella mia istruzione if, ma ritengo che anche il RegExp dovrebbe catturarlo. Grazie in anticipo!
L'espressione regolare non funziona perché è necessario sfuggire al carattere '' 'poiché' \ 'ha anche significato nella notazione stringa letterale. 'nuovo RegExp ('\\ D', 'g');' –
... anche, non avresti davvero bisogno del modificatore 'g', dal momento che sembra che anche solo una non cifra dovrebbe essere sufficiente per contrassegnare il ingresso. –
@amnotiam grazie per le informazioni sul perché quello che stavo facendo non funzionava. Le espressioni regolari sono qualcosa di cui sono ancora nuovo. Spero di cambiarlo presto. –