检查用户输入字符串是否仅包含大写和/或小写字母(JavaScript)

时间:2017-05-09 18:49:34

标签: javascript google-chrome google-chrome-extension dna-sequence

我正在创建一个chrome扩展,将一系列核苷酸转换成相应的氨基酸,我在验证用户输入方面遇到了一些问题。

我最终想检查以确保用户只输入大写或小写字符(没有数字,特殊字符,空格等)。如果找到任何不可接受的字符,它会警告用户输入无效。否则,程序正常进行,不会抛出任何错误/警报。

以下是我目前使用的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);

}

3 个答案:

答案 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) );

希望这会有所帮助

答案 1 :(得分:0)

使用此模式检查:/^[a-zA-Z]+$/i.test(yourStr);

答案 2 :(得分: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;
}