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

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

我怎么能写我的JavaScript代码没有jQuery检查用户输入的给定字符串不包含破折号,或者更好的是,只包含字母数字字符?


当前回答

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

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

其他回答

使用正则表达式来实现这一点。

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

凯文的答案是正确的,但它需要一个“神奇”的数字如下:

var containsChar = s.indexOf(somechar) !== -1;

在这种情况下,您需要知道-1代表未找到。 我认为更好的说法应该是:

var containsChar = s.indexOf(somechar) >= 0;

仅测试字母数字字符:

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

正则表达式正在测试0-9、A-Z和A-Z字符集中的一个或多个(+),从输入的开始(^)开始,到输入的结束($)结束。

includes()方法确定数组在其条目中是否包含某个值,根据需要返回true或false。

const array1 = [1, 2, 3];

console.log(array1.includes(2));
// expected output: true

const pets = ['cat', 'dog', 'bat'];

console.log(pets.includes('cat'));
// expected output: true

console.log(pets.includes('at'));
// expected output: false

知道更多

ES6在String的原型中包含了内置的方法(includes),可以用来检查String是否包含另一个字符串。

var str =“生存,还是毁灭,这是一个问题。”; console.log (str。包括(','));

下面的polyfill可用于在不受支持的浏览器中添加此方法。(源)

if (!String.prototype.includes) { String.prototype.includes =函数(搜索,启动){ 使用严格的; If (typeof start !== 'number') { Start = 0; } 如果(开始+搜索。长度> this.length) { 返回错误; }其他{ 返回。indexOf(search, start) ! } }; }