我有一个带有文本框的页面,用户应该在其中输入一个24个字符(字母和数字,不区分大小写)的注册代码。我使用maxlength来限制用户输入24个字符。
注册代码通常是用破折号分隔的一组字符,但我希望用户输入的代码不带破折号。
我怎么能写我的JavaScript代码没有jQuery检查用户输入的给定字符串不包含破折号,或者更好的是,只包含字母数字字符?
我有一个带有文本框的页面,用户应该在其中输入一个24个字符(字母和数字,不区分大小写)的注册代码。我使用maxlength来限制用户输入24个字符。
注册代码通常是用破折号分隔的一组字符,但我希望用户输入的代码不带破折号。
我怎么能写我的JavaScript代码没有jQuery检查用户输入的给定字符串不包含破折号,或者更好的是,只包含字母数字字符?
当前回答
如果要搜索字符串开头或结尾的字符,还可以使用startsWith和endsWith
const country = "pakistan";
country.startsWith('p'); // true
country.endsWith('n'); // true
其他回答
检查字符串(单词/句子…)是否包含特定的单词/字符
if ( "write something here".indexOf("write som") > -1 ) { alert( "found it" ); }
你们都想得太多了。只需使用一个简单的正则表达式,它是你最好的朋友。
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分钟内学会正则表达式?
在your_string中查找"hello"
if (your_string.indexOf('hello') > -1)
{
alert("hello found inside your_string");
}
对于alpha数值,您可以使用正则表达式:
http://www.regular-expressions.info/javascript.html
数值正则表达式
如果你在变量foo中有文本:
if (! /^[a-zA-Z0-9]+$/.test(foo)) {
// Validation failed
}
这将测试并确保用户至少输入了一个字符,并且只输入了字母数字字符。
凯文的答案是正确的,但它需要一个“神奇”的数字如下:
var containsChar = s.indexOf(somechar) !== -1;
在这种情况下,您需要知道-1代表未找到。 我认为更好的说法应该是:
var containsChar = s.indexOf(somechar) >= 0;