Mi objetivo final es validar un campo de entrada. La entrada puede ser alfabética o numérica.
Mi objetivo final es validar un campo de entrada. La entrada puede ser alfabética o numérica.
Respuestas:
Si no me equivoco, la pregunta requiere "contiene número", no "es número". Entonces:
function hasNumber(myString) {
return /\d/.test(myString);
}
Puedes hacer esto usando javascript. No hay necesidad de Jquery o Regex
function isNumeric(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
}
Mientras implementa
var val = $('yourinputelement').val();
if(isNumeric(val)) { alert('number'); }
else { alert('not number'); }
Actualización: para verificar si una cadena tiene números, puede usar expresiones regulares para hacer eso
var matches = val.match(/\d+/g);
if (matches != null) {
alert('number');
}
matches != null
significa no undefined
o null
while matches !== null
significa específicamente no null
pero pasa undefined
.
match()
devuelve una matriz o null
. Entonces if (matches !== null)
debería estar bien (y complacerá a JSHint.) Fuente: developer.mozilla.org/en/docs/Web/JavaScript/Reference/…
isFinite(parseFloat(n))
en el primer ejemplo. isNumeric("5,000")
falla
isFinite()
da verdadero si el valor pasado es un finite
número y el número 5,000
es una cadena de número formateada, no un número finito.
isNaN
? Sugeriría eliminar el flotador de análisis isNaN
o agregarlo también para isFinite
que sea consistente.
function validate(){
var re = /^[A-Za-z]+$/;
if(re.test(document.getElementById("textboxID").value))
alert('Valid Name.');
else
alert('Invalid Name.');
}
No es a prueba de balas de ninguna manera, pero funcionó para mis propósitos y tal vez ayudará a alguien.
var value = $('input').val();
if(parseInt(value)) {
console.log(value+" is a number.");
}
else {
console.log(value+" is NaN.");
}
Boolean(parseInt(3)) -> true; Boolean(parseInt("3")) -> true; Boolean(parseInt("three")) -> false
Usar expresiones regulares con JavaScript . Una expresión regular es una cadena de texto especial para describir un patrón de búsqueda, que se escribe en forma de / patrón / modificadores donde "patrón" es la expresión regular en sí misma, y los "modificadores" son una serie de caracteres que indican varias opciones.
La clase de caracteres es el concepto de expresión regular más básico después de una coincidencia literal. Hace que una pequeña secuencia de caracteres coincida con un conjunto de caracteres más grande. Por ejemplo, [A-Z]
podría representar el alfabeto en mayúsculas y\d
podría significar cualquier dígito.
De abajo ejemplo
contains_alphaNumeric
«Comprueba que la cadena contenga letra o número (o) letra y número. El guión (-) se ignora .onlyMixOfAlphaNumeric
«Comprueba que la cadena contenga letras y números solo de cualquier orden de secuencia.Ejemplo:
function matchExpression( str ) {
var rgularExp = {
contains_alphaNumeric : /^(?!-)(?!.*-)[A-Za-z0-9-]+(?<!-)$/,
containsNumber : /\d+/,
containsAlphabet : /[a-zA-Z]/,
onlyLetters : /^[A-Za-z]+$/,
onlyNumbers : /^[0-9]+$/,
onlyMixOfAlphaNumeric : /^([0-9]+[a-zA-Z]+|[a-zA-Z]+[0-9]+)[0-9a-zA-Z]*$/
}
var expMatch = {};
expMatch.containsNumber = rgularExp.containsNumber.test(str);
expMatch.containsAlphabet = rgularExp.containsAlphabet.test(str);
expMatch.alphaNumeric = rgularExp.contains_alphaNumeric.test(str);
expMatch.onlyNumbers = rgularExp.onlyNumbers.test(str);
expMatch.onlyLetters = rgularExp.onlyLetters.test(str);
expMatch.mixOfAlphaNumeric = rgularExp.onlyMixOfAlphaNumeric.test(str);
return expMatch;
}
// HTML Element attribute's[id, name] with dynamic values.
var id1 = "Yash", id2="777", id3= "Yash777", id4= "Yash777Image4"
id11= "image5.64", id22= "55-5.6", id33= "image_Yash", id44= "image-Yash"
id12= "_-.";
console.log( "Only Letters:\n ", matchExpression(id1) );
console.log( "Only Numbers:\n ", matchExpression(id2) );
console.log( "Only Mix of Letters and Numbers:\n ", matchExpression(id3) );
console.log( "Only Mix of Letters and Numbers:\n ", matchExpression(id4) );
console.log( "Mixed with Special symbols" );
console.log( "Letters and Numbers :\n ", matchExpression(id11) );
console.log( "Numbers [-]:\n ", matchExpression(id22) );
console.log( "Letters :\n ", matchExpression(id33) );
console.log( "Letters [-]:\n ", matchExpression(id44) );
console.log( "Only Special symbols :\n ", matchExpression(id12) );
Fuera puesto:
Only Letters:
{containsNumber: false, containsAlphabet: true, alphaNumeric: true, onlyNumbers: false, onlyLetters: true, mixOfAlphaNumeric: false}
Only Numbers:
{containsNumber: true, containsAlphabet: false, alphaNumeric: true, onlyNumbers: true, onlyLetters: false, mixOfAlphaNumeric: false}
Only Mix of Letters and Numbers:
{containsNumber: true, containsAlphabet: true, alphaNumeric: true, onlyNumbers: false, onlyLetters: false, mixOfAlphaNumeric: true}
Only Mix of Letters and Numbers:
{containsNumber: true, containsAlphabet: true, alphaNumeric: true, onlyNumbers: false, onlyLetters: false, mixOfAlphaNumeric: true}
Mixed with Special symbols
Letters and Numbers :
{containsNumber: true, containsAlphabet: true, alphaNumeric: false, onlyNumbers: false, onlyLetters: false, mixOfAlphaNumeric: false}
Numbers [-]:
{containsNumber: true, containsAlphabet: false, alphaNumeric: false, onlyNumbers: false, onlyLetters: false, mixOfAlphaNumeric: false}
Letters :
{containsNumber: false, containsAlphabet: true, alphaNumeric: false, onlyNumbers: false, onlyLetters: false, mixOfAlphaNumeric: false}
Letters [-]:
{containsNumber: false, containsAlphabet: true, alphaNumeric: true, onlyNumbers: false, onlyLetters: false, mixOfAlphaNumeric: false}
Only Special symbols :
{containsNumber: false, containsAlphabet: false, alphaNumeric: false, onlyNumbers: false, onlyLetters: false, mixOfAlphaNumeric: false}
Java Pattern Matching con expresiones regulares.
Para probar si algún carácter es un número, sin exagerar, para adaptarlo según sea necesario.
const s = "EMA618"
function hasInt(me){
let i = 1,a = me.split(""),b = "",c = "";
a.forEach(function(e){
if (!isNaN(e)){
console.log(`CONTAIN NUMBER «${e}» AT POSITION ${a.indexOf(e)} => TOTAL COUNT ${i}`)
c += e
i++
} else {b += e}
})
console.log(`STRING IS «${b}», NUMBER IS «${c}»`)
if (i === 0){
return false
// return b
} else {
return true
// return +c
}
}
hasInt(s)
Una forma de verificarlo es recorrer la cadena y devolver verdadero (o falso, según lo que desee) cuando toca un número.
function checkStringForNumbers(input){
let str = String(input);
for( let i = 0; i < str.length; i++){
console.log(str.charAt(i));
if(!isNaN(str.charAt(i))){ //if the string is a number, do the following
return true;
}
}
}
Puedes hacer esto usando javascript. No hay necesidad de Jquery o Regex
function isNumeric(n) {
if(!isNaN(n))
{
return true
}
else
{
return false
}
}
function isNumeric(n) { return !isNaN(n); }
Este código también ayuda en "Para detectar números en una cadena dada" cuando los números encuentran que detiene su ejecución.
function hasDigitFind(_str_) {
this._code_ = 10; /*When empty string found*/
var _strArray = [];
if (_str_ !== '' || _str_ !== undefined || _str_ !== null) {
_strArray = _str_.split('');
for(var i = 0; i < _strArray.length; i++) {
if(!isNaN(parseInt(_strArray[i]))) {
this._code_ = -1;
break;
} else {
this._code_ = 1;
}
}
}
return this._code_;
}
parseInt
proporciona enteros cuando la cadena comienza con la representación de un entero:
(parseInt '1a') is 1
..así que tal vez:
isInteger = (s)->
s is (parseInt s).toString() and s isnt 'NaN'
(isInteger 'a') is false
(isInteger '1a') is false
(isInteger 'NaN') is false
(isInteger '-42') is true
Disculpe mi CoffeeScript.