0

嗨,我是 JavaScript 新手,我在试图让这段代码正常工作时有点卡住了。我坚持检查数组的最后一部分,看看它是否包含那些选定的字符,如果它确实警报为真,如果不警报为假。

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)    
}
4

1 回答 1

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],但如果你改为allowedcharactersbe ,它会突然中断["u", "v", "w", "x", "y", "z"]。为了使其更通用,请以不同的方式构建正则表达式。对于第一个,你会这样做:

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

第二个类似:

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

通过这种方式,您的 allowedcharacters 可以是任何字符,因为join指定的数组会将所有变量放在一起,没有任何空格或逗号。

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

于 2013-11-06T22:09:33.607 回答