validacion - validar nombre javascript
Verificar si una cadena tiene espacio en blanco (4)
Aquí está mi validación sugerida:
var isValid = false;
// Check whether this entered value is numeric.
function checkNumeric() {
var numericVal = document.getElementById("txt_numeric").value;
if(isNaN(numericVal) || numericVal == "" || numericVal == null || numericVal.indexOf('' '') >= 0) {
alert("Please, enter a numeric value!");
isValid = false;
} else {
isValid = true;
}
}
Estoy tratando de verificar si una cadena tiene espacio en blanco . Encontré esta función pero parece que no funciona:
function hasWhiteSpace(s)
{
var reWhiteSpace = new RegExp("/^/s+$/");
// Check for white space
if (reWhiteSpace.test(s)) {
//alert("Please Check Your Fields For Spaces");
return false;
}
return true;
}
Por cierto, agregué comillas a RegExp
.
¿Hay algo mal? ¿Hay algo mejor que pueda usar? Espero que JQuery.
Esta función busca otros tipos de espacio en blanco, no solo espacio (pestaña, retorno de carro, etc.)
import some from ''lodash/fp/some''
const whitespaceCharacters = ['' '', '' '',
''/b'', ''/t'', ''/n'', ''/v'', ''/f'', ''/r'', `/"`, `/'`, `//`,
''/u0008'', ''/u0009'', ''/u000A'', ''/u000B'', ''/u000C'',
''/u000D'', ''/u0020'',''/u0022'', ''/u0027'', ''/u005C'',
''/u00A0'', ''/u2028'', ''/u2029'', ''/uFEFF'']
const hasWhitespace = char => some(
w => char.indexOf(w) > -1,
whitespaceCharacters
)
console.log(hasWhitespace(''a'')); // a, false
console.log(hasWhitespace('' '')); // space, true
console.log(hasWhitespace('' '')); // tab, true
console.log(hasWhitespace(''/r'')); // carriage return, true
Si no quieres usar Lodash , entonces aquí hay una implementación simple con 2 s
:
const ssome = (predicate, list) =>
{
const len = list.length;
for(const i = 0; i<len; i++)
{
if(predicate(list[i]) === true) {
return true;
}
}
return false;
};
Entonces simplemente reemplaza some
con ssome
.
const hasWhitespace = char => some(
w => char.indexOf(w) > -1,
whitespaceCharacters
)
Para aquellos en Node, usa:
const { some } = require(''lodash/fp'');
Simplemente puede usar el método indexOf en la cadena de entrada:
function hasWhiteSpace(s) {
return s.indexOf('' '') >= 0;
}
O puede usar el método de prueba en un simple RegEx:
function hasWhiteSpace(s) {
return //s/g.test(s);
}
Esto también buscará otros caracteres de espacio en blanco como Tab.
Su expresión regular no coincidirá con nada, tal como es. Definitivamente debe eliminar las comillas, los caracteres "/"
son suficientes.
/^/s+$/
está comprobando si la cadena es TODOS los espacios en blanco:
-
^
coincide con el inicio de la cadena. -
/s+
significa al menos 1, posiblemente más, espacios. -
$
coincide con el final de la cadena.
Intente reemplazar la expresión regular con //s/
(y sin comillas)