嗨,我是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)
}
答案 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/