Come verificare se un testo di input dell'utente è tutti i caratteri di spazio bianco (spazio, tab, invio, ecc.) Nel lato client?Come verificare se un testo è tutti i caratteri dello spazio bianco sul lato client?
Grazie in anticipo!
Come verificare se un testo di input dell'utente è tutti i caratteri di spazio bianco (spazio, tab, invio, ecc.) Nel lato client?Come verificare se un testo è tutti i caratteri dello spazio bianco sul lato client?
Grazie in anticipo!
/^\s+$/.test(userText)
Modificare il +
-*
per includere la stringa vuota ''
come un riscontro positivo.
Modifica
Più spesso però è necessario tagliare gli spazi bianchi da testo inserito dall'utente e semplicemente verificare se si tratta di non-vuoto:
userText = userText.replace(/^\s+/, '').replace(/\s+$/, '');
if (userText === '') {
// text was all whitespace
} else {
// text has real content, now free of leading/trailing whitespace
}
... Ti piace questa
function isEmpty(str) {
return str.replace(/^\s+|\s+$/g, '').length == 0;
}
Se si desidera vedere se un file contiene tutto lo spazio vuoto o è vuoto, si consiglia di testare l'inversione e invertire il risultato. In questo modo non devi preoccuparti di casi speciali attorno alla stringa vuota.
tutti gli spazi è lo stesso di no non spazi così:
function isWhitespaceOrEmpty(text) {
return !/[^\s]/.test(text);
}
Se non si desidera che le stringhe vuote è possibile modificare leggermente:
function isWhitespaceNotEmpty(text) {
return text.length > 0 && !/[^\s]/.test(text);
}
Quando ho letto la regex ho letto: "Controlla la stringa che inizia con spazi bianchi", ma come mai funziona quando digiti "abc"? –
Stai leggendo l'espressione regolare in modo errato. [^ \ s] significa qualsiasi carattere che non è uno spazio bianco. – coderjoe
Questa domanda è codificata con jQuery . In jQuery, è possibile eseguire il seguente:
if ($.trim($('#myInput').val()) == '')
alert('input is blank');
Questo funziona anche:
var text = " ";
text.trim().length == 0; //true
Questo non funziona in tutti i browser. Vedi la risposta di MacAnthony. – shakerlxxv
Interessante sarebbe sapere se questo è più veloce o se la soluzione regex è più veloce. – Devid
Non sono sicuro su quale browser non funzioni (sarei curioso) ma ho appena eseguito il test in Chrome (62.0.3202.94), Firefox (59.0) e Safari (11.0.1) e funziona con quelli. –
risposta di Josh è molto vicino a questo, ma secondo w3schools (a maggio 2014), è la seguente:
function isEmpty(str) {
return str.replace(/^\s+|\s+$/gm,'').length == 0;
}
Qualcosa che ha funzionato per me:
$("#example_form").validate({
rules: {
example_field: {
required: {
depends: function() {
$(this).val($.trim($(this).val()));
return true;
}
}
},
},
messages: { example_field: {required: "Custom Validation Message for example_field"}, }
});
Per trovare spazi generati da JavaScript e tra gli elementi usare:
var trimmed = $.trim($('p').text());
if (trimmed === ''){
//function...
}
Se non si conosce regex, preparare la testa per esplodere. –
@GabRoyer, non con jQuery, non lo farà! Vedi la risposta di MacAnthony sotto. –