我正在创建一个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);
}
答案 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;
}