如何判断一个string是否包含JavaScript中的某个字符?
我有一个文本框,用户应该input一个24个字符(字母和数字,不区分大小写)的注册码。 我用maxlength
来限制用户input24个字符。
注册代码通常是以虚线分隔的字符组来给出的,但是我希望用户input没有破折号的代码。
如何在不使用jQuery的情况下编写JavaScript代码来检查用户input的给定string是否不包含破折号,或者更好的是只包含字母数字字符?
在your_string
find“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"); }