我目前正在为我的编码课做作业(我是初学者)。分配的任务是创建一个包含两个输入的HTML页面,一个输入名,一个输入姓氏,并创建一个提交按钮,当单击该按钮时,检查“名”和“名”是否都以大写字母开头,是否至少包含一个字符。当它们与regex匹配时,将使用警报和控制台日志。如果不这样做,就会使用不同的警报,控制台也不会登录。当我完成html和脚本的制作时,我输入了两个应该与regex匹配的输入的名称,但是它只对不正确的输入发出警告。出了点问题,但我找不到。
function regexChecker(firstName, lastName) {
firstName = document.getElementById("firstName").innerHTML;
lastName = document.getElementById("lastName").innerHTML;
let firstNameRegex = /^[A-Z][a-z]*$/;
let lastNameRegex = /^[A-Z][a-z]*$/;
if (firstName.match(firstNameRegex) && lastName.match(lastNameRegex)) {
alert('Yay! Your inputs were all correct!' );
console.log(true);
}
else {
alert('Oh no! Thats an invalid format!' );
console.log(false);
}
}在我没有提供的链接html中,每个名称有两个输入,还有一个按钮。我在第一个输入了艾萨克,在第二个输入了丹尼尔斯。我以为警报是“耶!你的输入都是正确的!”,但我却得到了“哦,不!那是一个无效的格式!”
发布于 2019-04-10 02:45:40
您可以使用这个regexp:
/^([A-Z][a-z]*)+$/它将测试它是否以大写字母开头,然后是小写字母,并且至少有一个字母长。
您可以使用regexp和.test()来获得一个真/假值。
let regexp = /^([A-Z][a-z]*)+$/
document.names.addEventListener('submit', e => {
e.preventDefault()
let firstValid = regexp.test(document.names.first.value)
let lastValid = regexp.test(document.names.last.value)
// Sanity check
console.log(firstValid, lastValid)
if (!firstValid) alert('First name is invalid!')
else if (!lastValid) alert('Last name is invalid!')
else alert('Both are valid!')
})<form name="names">
<input type="text" name="first" placeholder="First Name">
<input type="text" name="last" placeholder="Last Name">
<p>
<input type="submit" value="Check Names">
</p>
</form>
https://stackoverflow.com/questions/55603894
复制相似问题