0

ヌクレオチドのシーケンスを対応するアミノ酸に変換するクロムエクステンションを作成していますが、ユーザー入力の検証に問題があります。ユーザー入力文字列に大文字と小文字しか含まれていないか確認する(JavaScript)

最終的に、ユーザーが大文字または小文字(数字、特殊文字、スペースなどなし)のみを入力していることを確認する必要があります。許容できない文字が見つかった場合は、無効な入力をユーザーに警告します。それ以外の場合、プログラムは正常に進み、エラー/アラートはスローされません。

以下は私が現在持っているJavaScriptコードです。私はthis postに基づいていくつかのバリエーションを試しましたが、私のために何かを得ることができないようです。私が今あるコードでは、有効な入力(たとえば "ATG")を提出しようとすると、プログラムが正常に進行し、 "M"を正しく出力する代わりに警告がポップアップします(参考としてthis linkを参照)。

JavaScriptには比較的新しいので、助けてください。それが役に立ちそうなら、私の追加コードの一部を投稿してください。

document.getElementById('button').onclick = function() { 

    console.log(document.querySelectorAll("textarea")) 
    var n_seq = document.querySelectorAll("textarea")[0].value.toUpperCase(); 


    // validate user input below 
    if (!/^[a-zA-Z]+$/i.test(n_seq)); { 
     alert("invald input"); 
     return; 
    } 


document.getElementById("amino_acid_seq").value = translateInput(codonDict, n_seq); 

} 
+2

toUpperCaseのメソッドです。あなたはそれを 'toUpperCase()'と呼んでいません。単純な 'console.log(n_seq)'は、​​あなたに問題を示していました。 – epascarello

+0

シンプルな入力ミス。できるだけ早く閉じなければならない。答えは必要ありません。 – rottenoats

+0

toUpperCaseは問題を引き起こしていません。不足している括弧は、自分の投稿の誤字であり、コードの誤字ではありません。 – Happy

答えて

0

これは私のために働くことになった:

// only letters are acceptable characters, spaces, special characters, and 
// numbers will throw an error 
if (!/^[A-Z]+$/i.test(n_seq)) { 
    alert("Invalid input!"); 
    return; 
} 
0

これは助けになると思います。これは、このパターンがチェックする

0

使用できます

//this will make the entire string uppercase 
// that way you do not need to tell user to make sure its upper case 
var input = document.querySelectorAll("textarea").toUpperCase(); 
//this is regex that will tell if its all letters. the i makes it case insesitve 
var reg = /^[a-z]+$/i; 
//this should output true or false 
console.log(reg.test(input)); 

希望:/^[a-zA-Z]+$/i.test(yourStr);

+0

残念ながらうまくいきませんでした – Happy

関連する問題