Comment dire si une chaîne de caractères contient un certain caractère en JavaScript?
j'ai une page avec une boîte de texte où un utilisateur est censé entrer un 24 caractère (lettres et numéros, insensible à la casse) code d'enregistrement. J'ai utilisé maxlength
pour limiter l'utilisateur à entrer 24 caractères.
les codes d'enregistrement sont généralement donnés comme des groupes de caractères séparés par des tirets, mais je voudrais que l'utilisateur entre les codes sans les tirets.
Comment puis-je écrire mon code JavaScript sans jQuery pour vérifier qu'un chaîne donnée que les entrées de l'utilisateur ne contient pas de tirets, ou mieux encore, ne contient que des caractères alphanumériques?
15 réponses
pour trouver "hello" dans your_string
if (your_string.indexOf('hello') > -1)
{
alert("hello found inside your_string");
}
pour le chiffre alphanumérique, vous pouvez utiliser une expression régulière:
si vous avez le texte dans la variable foo
:
if (! /^[a-zA-Z0-9]+$/.test(foo)) {
// Validation failed
}
cela permettra de tester et de s'assurer que l'Utilisateur a entré au moins un caractère, et a entré seulement caractères alphanumériques.
avec ES6 comprend
""FooBar".includes("oo"); // true
"FooBar".includes("foo"); // false
"FooBar".includes("oo", 2); // false
vérifier si la chaîne (mot / phrase...) contient le mot/caractère spécifique
if ( "write something here".indexOf("write som") > -1 ) { alert( "found it" ); }
vous pensez trop. Utilise une simple Expression, c'est ton meilleur ami.
var string1 = "Hi Stack Overflow. 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
utilisez une expression régulière pour accomplir ceci.
function isAlphanumeric( str ) {
return /^[0-9a-zA-Z]+$/.test(str);
}
ES6 contient la méthode intégrée( includes
) dans la chaîne prototype
, qui peut être utilisée pour vérifier si string contient une autre chaîne ou pas.
var str = 'To be, or not to be, that is the question.';
console.log(str.includes('To be'));
suivant polyfill peut être utilisé pour ajouter cette méthode dans les navigateurs non pris en charge. ( Source )
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 inputString = "this is home";
var findme = "home";
if ( inputString.indexOf(findme) > -1 ) {
alert( "found it" );
} else {
alert( "not found" );
}
pour tester les caractères alphanumériques uniquement:
if (/^[0-9A-Za-z]+$/.test(yourString))
{
//there are only alphanumeric characters
}
else
{
//it contains other characters
}
le regex teste 1 ou plus (+) de l'ensemble des caractères 0-9, A-Z, et a-z, en commençant par le début de l'entrée (^) et en s'arrêtant avec la fin de l'entrée ($).
Kevins réponse est correcte, mais il exige un nombre" magique "comme suit:
var containsChar = s.indexOf(somechar) !== -1;
dans ce cas, vous devez savoir que -1 signifie introuvable . Je pense qu'une version un peu meilleure serait:
var containsChar = s.indexOf(somechar) >= 0;
essayez ceci:
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'!");
voici un exemple: http://jsfiddle.net/oliverni/cb8xw /
String est également utile. Il recherche un caractère ainsi qu'une sous-chaîne dans une chaîne donnée.
'apple'.search('pl')
renvoie 2
'apple'.search('x')
retour -1
fonctionne parfaitement.Cet exemple aidera beaucoup.
<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>
si vous cherchez des caractères au début ou à la fin de la chaîne, vous pouvez aussi utiliser startsWith
et endsWith
const country = "pakistan";
country.startsWith('p'); // true
country.endsWith('n'); // true
var emailID=document.getElementById("emailField").value;
if(!emailID.contains("@"))
{
alert("Wrong EmailID");
}