0

こんにちは、私は JavaScript が初めてで、このコードを機能させるのに少し苦労しています。配列をチェックして、選択した文字が含まれているかどうか、アラートが true であるかどうか、そうでない場合は false であるかどうかを確認する最後の部分に行き詰まっています。

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]と突然機能しなくなります。より汎用的にするには、正規表現を別の方法で作成します。最初のものについては、次のようにします。allowedcharacters["u", "v", "w", "x", "y", "z"]

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

そして、2番目のものは似ています:

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

joinこのように、指定されたように配列を ing すると、すべての変数がスペースやコンマなしでまとめられるため、使用できる文字は何でもかまいません。

EDIT ここに実行例があります: http://jsfiddle.net/Florian_Loch/YR8pw/

于 2013-11-06T22:09:33.607 に答える