ultimo - ¿Cómo saber si una cadena contiene un determinado carácter en JavaScript?
reemplazar caracteres javascript (15)
Con ES6 includes
"FooBar".includes("oo"); // true
"FooBar".includes("foo"); // false
"FooBar".includes("oo", 2); // false
Tengo una página con un cuadro de texto donde un usuario debe ingresar un código de registro de 24 caracteres (letras y números, sin distinción de mayúsculas y minúsculas). Utilicé maxlength
para limitar al usuario a ingresar 24 caracteres.
Los códigos de registro normalmente se dan como grupos de caracteres separados por guiones, pero me gustaría que el usuario ingrese los códigos sin los guiones.
¿Cómo puedo escribir mi código JavaScript sin jQuery para comprobar que una cadena dada que el usuario ingresa no contiene guiones, o mejor aún, solo contiene caracteres alfanuméricos?
Funcionando perfectamente. Este ejemplo ayudará mucho.
<script>
function check()
{
var val = frm1.uname.value;
//alert(val);
if (val.indexOf("@") > 0)
{
alert ("email");
document.getElementById(''isEmail1'').value = true;
//alert( document.getElementById(''isEmail1'').value);
}else {
alert("usernam");
document.getElementById(''isEmail1'').value = false;
//alert( document.getElementById(''isEmail1'').value);
}
}
</script>
<body>
<h1>My form </h1>
<form action="v1.0/user/login" method="post" id = "frm1">
<p>
UserName : <input type="text" id = "uname" name="username" />
</p>
<p>
Password : <input type="text" name="password" />
</p>
<p>
<input type="hidden" class="email" id = "isEmail1" name = "isEmail"/>
</p>
<input type="submit" id = "submit" value="Add User" onclick="return check();"/>
</form>
</body>
La función de búsqueda de cuerdas también es útil. Busca un carácter así como una subcadena en una cadena dada.
''apple''.search(''pl'')
devuelve 2
''apple''.search(''x'')
devuelve -1
La respuesta de Kevin es correcta pero requiere un número "mágico" como sigue:
var containsChar = s.indexOf(somechar) !== -1;
En ese caso, necesita saber que -1 significa no encontrado . Creo que una versión un poco mejor sería:
var containsChar = s.indexOf(somechar) >= 0;
Para encontrar "hola" en your_string
if (your_string.indexOf(''hello'') > -1)
{
alert("hello found inside your_string");
}
Para el alfanumérico puedes usar una expresión regular:
Para probar solo caracteres alfanuméricos:
if (/^[0-9A-Za-z]+$/.test(yourString))
{
//there are only alphanumeric characters
}
else
{
//it contains other characters
}
La expresión regular está probando 1 o más (+) del conjunto de caracteres 0-9, AZ y az, comenzando con el comienzo de la entrada (^) y parando con el final de la entrada ($).
Prueba esto:
if (''Hello, World!''.indexOf(''orl'') !== -1)
alert("The string ''Hello World'' contains the substring ''orl''!");
else
alert("The string ''Hello World'' does not contain the substring ''orl''!");
Aquí hay un ejemplo: http://jsfiddle.net/oliverni/cb8xw/
Si está buscando caracteres en el principio o al final de la cadena, también puede usar startsWith
y endsWith
const country = "pakistan";
country.startsWith(''p''); // true
country.endsWith(''n''); // true
Si tienes el texto en variable foo
:
if (! /^[a-zA-Z0-9]+$/.test(foo)) {
// Validation failed
}
Esto probará y se asegurará de que el usuario haya ingresado al menos un carácter y que haya ingresado solo caracteres alfanuméricos.
Todos ustedes están pensando demasiado duro. Solo usa una expresión regular simple, es tu mejor amigo.
var string1 = "Hi . I like to eat pizza."
var string2 = "Damn, I fail."
var regex = /(pizza)/g // Insert whatever phrase or character you want to find
string1.test(regex); // => true
string2.test(regex); // => false
Usa una expresión regular para lograr esto.
function isAlphanumeric( str ) {
return /^[0-9a-zA-Z]+$/.test(str);
}
verificar si la cadena (palabra / oración ...) contiene una palabra / carácter específico
if ( "write something here".indexOf("write som") > -1 ) { alert( "found it" ); }
ES6 contiene un método incorporado ( includes
) en el prototype
de String, que se puede usar para verificar si la cadena contiene otra cadena o no.
var str = ''To be, or not to be, that is the question.'';
console.log(str.includes(''To be''));
Se puede usar el siguiente polyfill para agregar este método en navegadores no compatibles. ( includes )
if (!String.prototype.includes) {
String.prototype.includes = function(search, start) {
''use strict'';
if (typeof start !== ''number'') {
start = 0;
}
if (start + search.length > this.length) {
return false;
} else {
return this.indexOf(search, start) !== -1;
}
};
}
var emailID=document.getElementById("emailField").value;
if(!emailID.contains("@"))
{
alert("Wrong EmailID");
}
var inputString = "this is home";
var findme = "home";
if ( inputString.indexOf(findme) > -1 ) {
alert( "found it" );
} else {
alert( "not found" );
}