Javascript 只接受提示框中的字母
我正在尝试验证名称提示框,使其仅允许字母,并确保在其中放置了一些内容。其中必须有if和else语句。我不知道为什么它不起作用,但它只是贯穿其中,好像那里没有if语句Javascript 只接受提示框中的字母,javascript,Javascript,我正在尝试验证名称提示框,使其仅允许字母,并确保在其中放置了一些内容。其中必须有if和else语句。我不知道为什么它不起作用,但它只是贯穿其中,好像那里没有if语句 函数验证(){ var name=prompt(“请输入您的姓名”); var查询=提示(“请告诉我们您的查询。”) 如果(name=null | | name==“”){ 警告(“您必须在提示框中输入您的姓名!”); 验证() }否则如果(!/[a-zA-Z]/name.test(ch)){ 警告(“请仅输入字母”); 验证()
函数验证(){
var name=prompt(“请输入您的姓名”);
var查询=提示(“请告诉我们您的查询。”)
如果(name=null | | name==“”){
警告(“您必须在提示框中输入您的姓名!”);
验证()
}否则如果(!/[a-zA-Z]/name.test(ch)){
警告(“请仅输入字母”);
验证()
}否则{
警报(“您的查询已通过”);
}
}
问题在于名称=0
应为name==0
if (name == null || name ==""){
alert("You must enter your name into the prompt box!");
validate()
}
看起来像是打字错误
if (name = null || name == "")
应该是
if (name == null || name == "")
您的版本(有趣的是)将name设置为
“true”
或“false”
,因为它被解析为name=(null | | name=”)
您的代码有三个问题
首先,if语句包含赋值而不是比较。您应该将其更改为=
或==
:
if (name === null || name === "") {
注意:您应该研究=
和==
之间的差异,因为您将得到意想不到的结果。在这种情况下,我建议您使用==
其次,您的正则表达式语法是错误的。就目前而言,它是无效的
第三,您的实际正则表达式不会执行您需要的操作,因为当前它将匹配任何字符,而不是所有字符。你应该改变它
if (!/^[a-zA-Z]+$/.test(name))
完整工作代码:
function validate() {
var name = prompt("Please enter your name.");
var enquiry = prompt("Please tell us your enquiry.")
if (name == null || name == "") {
alert("You must enter your name into the prompt box!");
validate()
} else if (!/^[a-zA-Z]+$/.test(name)) {
alert("Please only enter letters");
validate()
} else {
alert("Your enquiry has gone through");
}
}
.
=
是分配<代码>=< /代码>和<代码>==比较是什么样的混乱,请在请求帮助时适当地缩进代码:这些字符将无法通过您的检查。/[a-zA-Z]/name.test(ch)
无效,应使用/[a-zA-Z]/.test(名称)