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

2022-08-29 23:25:04

我有一个带有文本框的页面,用户应该在其中输入24个字符(字母和数字,不区分大小写)的注册码。我曾经限制用户输入24个字符。maxlength

注册码通常以用破折号分隔的字符组给出,但我希望用户输入代码时不带破折号。

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


答案 1

要查找“你好”your_string

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

对于字母数字,您可以使用正则表达式:

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

字母数字正则表达式


答案 2

与 ES6 MDN 文档 .include()

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

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

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

E:不受IE支持 - 相反,您可以将波浪号操作器(按位NOT)与.indexOf()一起使用~

~"FooBar".indexOf("oo"); // -2 -> true

~"FooBar".indexOf("foo"); // 0 -> false

~"FooBar".indexOf("oo", 2); // 0 -> false

与数字一起使用时,波浪号运算符有效 。将其与双否定(逻辑 NOT)一起使用以布尔为单位转换数字:~N => -(N+1)!!

!!~"FooBar".indexOf("oo"); // true

!!~"FooBar".indexOf("foo"); // false

!!~"FooBar".indexOf("oo", 2); // false