【发布时间】:2018-06-22 19:25:59
【问题描述】:
我正在尝试获取 input:text 字段的值,然后检查该字符串是否仅包含有效字符。有效字符为“G、C、T、A”。我正在尝试为字符串编写验证,以便如果它有无效字母,它会将其踢回用户并仅要求有效字母。
如何只检查字符串中的某些字符?
let rnaTransResult;
let validLetters = ["G", "C", "T", "A"];
runBtn.addEventListener('click', function(){
let dna = userInput.value.toUpperCase();
rnaTranscribe(dna);
result.textContent = rnaTransResult;
});
function rnaTranscribe(dna){
let dnaArray = dna.split('');
for(let x = 0; x < dnaArray.length; x++){
if(dnaArray[x] != validLetters[x]){
console.log("invalid letters");
return false;
} else {
for(let i = 0; i < dnaArray.length; i++){
if(dnaArray[i] === "G"){
// console.log("G swap for C");
dnaArray[i] = "C";
}
}
console.log("end result: " + dnaArray);
rnaTransResult = dnaArray.join('');
console.log("Transcription complete - Result: " + rnaTransResult);
}
};
}
我尝试了几种不同的方法,但没有任何效果。我现在不知所措,很想了解解决这个问题背后的概念思考。提前谢谢!
【问题讨论】:
-
const isValid = str => !/[^GCTA]/.test(str); -
或者删除双重否定并使用
/^[GCTA]*$/.test(str),也许这样更容易阅读。
标签: javascript arrays string validation