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?

238
demandé sur Dov Miller 2010-12-15 00:35:13

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:

http://www.regular-expressions.info/javascript.html

Alpha Numérique Expression Régulière

461
répondu kemiller2002 2017-05-23 11:47:27

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.

34
répondu cdhowie 2010-12-14 21:38:36

avec ES6 comprend

"
"FooBar".includes("oo"); // true

"FooBar".includes("foo"); // false

"FooBar".includes("oo", 2); // false
29
répondu julian libor 2017-06-15 22:26:23

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" );  } 
17
répondu T.Todua 2017-05-15 06:46:03

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

apprendre le Regex en 5 minutes?

7
répondu Adam McArthur 2014-10-03 14:44:30

utilisez une expression régulière pour accomplir ceci.

function isAlphanumeric( str ) {
 return /^[0-9a-zA-Z]+$/.test(str);
}
6
répondu Gabriele Petrioli 2010-12-14 21:51:47

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;
    }
  };
}
6
répondu Vipin Kumar 2017-12-03 09:55:05
var inputString = "this is home";
var findme = "home";

if ( inputString.indexOf(findme) > -1 ) {
    alert( "found it" );
} else {
    alert( "not found" );
}
4
répondu aman 2015-01-22 12:55:04

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 ($).

3
répondu fairfieldt 2010-12-14 21:45:33

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;
3
répondu Mika Karjunen 2018-06-04 05:10:52

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 /

2
répondu Oliver Ni 2013-11-28 21:01:34
La fonction de recherche de

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

2
répondu learner010 2015-05-04 14:32:08

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>
0
répondu MankitaP 2014-04-10 10:50:56

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
0
répondu Ejaz Karim 2018-07-13 13:49:24
  var emailID=document.getElementById("emailField").value;
  if(!emailID.contains("@"))
    {
      alert("Wrong EmailID");
    }
-4
répondu Chetan 2016-03-30 17:16:05