gpt4 book ai didi

JavaScript 表单验证,确保出生日期为 4 位数字

转载 作者:行者123 更新时间:2023-11-28 15:23:22 25 4
gpt4 key购买 nike

我试图通过确保出生日期的长度为 4 个字符且每个字符都是数字来确保有效。

function validateBirth() {
var year = document.forms["myForm"]["birth_year"].value;
if (year.match(/\A\d{4}\z/) !== null) {
alert("Date of birth must be 4 digits");
return false;
}
}

我正在尝试使用 JavaScript 的 string#match 函数来搜索值中的正则表达式。这里我们知道它必须包含 4 位数字,但也不能包含任何非数字。

例如,像 a4b456 这样的字符串是无效的。这就是为什么我使用正则表达式标签 \A\z 分别来开始和结束字符串。

当我在 jsconsole 中测试这个函数时,它看起来像这样

var year = "1958"
year.match(/\A\d{4}\z/)
=> null

我在 rubular 中测试了完全相同的正则表达式,并得知存在匹配项。我是不是疯了,还是我错过了什么?

我知道我可以使用 HTML 输入验证 来完成此操作,但这在非现代浏览器上不起作用,因此我需要使用 JavaScript 方法。

最佳答案

JavaScript 正则表达式的字符串开头和结尾分别为 ^$。 (\A\z 在 Ruby 中对于开始和结束有效,但在 JavaScript 中无效。)所以这个正则表达式将起作用:

year.match(/^\d{4}$/);

如果您对 bool 结果感兴趣而不是接收实际的匹配项,则可以这样做:

/^\d{4}$/.test(year)

关于JavaScript 表单验证,确保出生日期为 4 位数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30279341/

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