如何判断一个string是否包含JavaScript中的某个字符?

我有一个文本框,用户应该input一个24个字符(字母和数字,不区分大小写)的注册码。 我用maxlength来限制用户input24个字符。

注册代码通常是以虚线分隔的字符组来给出的,但是我希望用户input没有破折号的代码。

如何在不使用jQuery的情况下编写JavaScript代码来检查用户input的给定string是否不包含破折号,或者更好的是只包含字母数字字符?

your_stringfind“hello”

 if (your_string.indexOf('hello') > -1) { alert("hello found inside your_string"); } 

对于字母数字,你可以使用正则expression式:

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

Alpha数字正则expression式

如果你在variablesfoo有文本:

 if (! /^[a-zA-Z0-9]+$/.test(foo)) { // Validation failed } 

这将testing并确保用户input了至less一个字符,并input字母数字字符。

检查string(单词/句子…)是否包含特定的单词/字符

 if ( "write something here".indexOf("write som") > -1 ) { alert( "found it" ); } 

随着ES6 包括

 "FooBar".includes("oo"); // true "FooBar".includes("foo"); // false "FooBar".includes("oo", 2); // false 

使用正则expression式来完成这个。

 function isAlphanumeric( str ) { return /^[0-9a-zA-Z]+$/.test(str); } 

你们都太过分了 只要使用一个简单的正则expression式,这是你最好的朋友。

 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 

在5分钟内学习正则expression式?

 var inputString = "this is home"; var findme = "home"; if ( inputString.indexOf(findme) > -1 ) { alert( "found it" ); } else { alert( "not found" ); } 

仅testing字母数字字符:

 if (/^[0-9A-Za-z]+$/.test(yourString)) { //there are only alphanumeric characters } else { //it contains other characters } 

正则expression式正在testing字符集0-9,AZ和az中的一个或多个(+),从input(^)开始并停止input($)结束。

尝试这个:

 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'!"); 

这里是一个例子: http : //jsfiddle.net/oliverni/cb8xw/

string的searchfunction也很有用。 它search给定string中的字符以及子string。

'apple'.search('pl')返回2

'apple'.search('x')返回-1

完美的工作。这个例子会帮助很多。

 <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> 

Kevins的答案是正确的,但它需要一个“魔术”数字如下:var containsChar = s.indexOf(somechar)!== -1; 在这种情况下,你需要知道-1 没有find 。 我认为更好的版本会是:var containsChar = s.indexOf(somechar)> = 0;

  var emailID=document.getElementById("emailField").value; if(!emailID.contains("@")) { alert("Wrong EmailID"); }