gpt4 book ai didi

javascript - 我在这里做错了什么? [JavaScript 正则表达式]

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:50:19 25 4
gpt4 key购买 nike

所以我正在写一个注册表,我需要显示名称只能是数字、字母和下划线。

看看我的代码,告诉我哪里做错了。

<form method="post" action="/" onsubmit="return check_form()">
<input type="text" id="display-name" name="display-name" maxlength="255" />
<input type="submit" />
</form>
<script type="text/javascript">
<!--
var name_regex = /^([a-zA-Z0-9_])+/

function check_form()
{
if (!name_regex.test(document.forms[0].elements[0].value))
{
document.forms[0].elements[0].focus()
alert("Your display name may only contain letters, numbers and underscores")
return false
}
}
-->
</script>

它显然已被精简,不包含任何与问题无关的内容,但即使是这个片段也不起作用。

最佳答案

你的正则表达式

/^([a-zA-Z0-9_])+/

寻找

  1. 字符串开头(检查),后跟
  2. 1 个或多个字母、数字或下划线(勾选)

之后的一切都无关紧要。只要以字母、数字或下划线开头,此正则表达式将匹配任何内容

如果你在末尾放一个 $,那么它会工作 - $ 匹配'字符串结尾',所以它可以匹配的唯一方法是如果有字符串开头和结尾之间的数字、字母和下划线。

/^([a-zA-Z0-9_])+$/

其次,我建议使用 document.getElementById('display-name').value 而不是 document.forms 因为如果您重新排列它不会中断HTML,更像是“做什么的公认标准”

关于javascript - 我在这里做错了什么? [JavaScript 正则表达式],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18861/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com