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");
    }