检查变量是否包含所选字符

时间:2013-11-06 22:05:53

标签: javascript

嗨,我是JavaScript的新手,我试图让这段代码工作有点困难。我坚持最后一部分,我检查数组,看它是否包含那些选定的字符,如果它确实警告true,如果没有警告错误。

var userinput = prompt('Input characters:');

var lowercase = userinput.toLowerCase();

alert(lowercase);

var allowedcharacters = [a,b,c,d,e,f];

if (lowercase){
  alert(true)
}
else{
  alert(false)    
}

1 个答案:

答案 0 :(得分:2)

如果要检查输入是否包含这些字符,可以使用正则表达式执行此操作。 这可以像下面这样做:

if (lowercase.match(/[abcdef]*/) == lowercase) {
 //Just contains allowed Characters
}
else {
 //contains forbidden characters
}

如果您想搜索是否有任何允许的角色,您可以这样做:

if (lowercase.search(/.*[abcdef].*/) != -1) {
 //Contains at least one allowed character
}
else {
 //contains none of them
}

修改

如果您知道自己将始终使用[abcdef],则此工作正常,但如果您将allowedcharacters更改为["u", "v", "w", "x", "y", "z"],则会突然中断。要使其更通用,请以不同方式构建正则表达式。对于第一个,你会这样做:

if (lowercase.match(RegExp("[" + allowedcharacters.join("") + "]*")) == lowercase) {
    // ...

第二个是相似的:

if (lowercase.search(RegExp(".*[" + allowedcharacters.join("") + "].*")) != -1) {
    // ...

通过这种方式,您的允许字符可以是任何内容,因为join所指示的数组会将所有变量放在一起而不带任何空格或逗号。

修改 在这里,您可以找到一个正在运行的示例:http://jsfiddle.net/Florian_Loch/YR8pw/