gpt4 book ai didi

javascript - 正则表达式在 JavaScript 中不起作用

转载 作者:行者123 更新时间:2023-12-02 05:31:10 26 4
gpt4 key购买 nike

我试图确保人们输入的格式完全是这样的:

.match(/\d{1,2}:\d\d\s((AM)|(PM))/)

意味着用户可以写:

12:30 AM
2:30 PM

但不是:

1:2 A
1:30
PM

它需要是前两位数字,后跟冒号,再多两位数字,一个空格,然后是 AM 或 PM。但我的正则表达式不是那样的。我错过了什么?

最佳答案

到底是什么问题?

> "1:2 A".match(/\d{1,2}:\d\d\s((AM)|(PM))/);
null

>"12:30 AM".match(/\d{1,2}:\d\d\s((AM)|(PM))/);
["12:30 AM", "AM", "AM", undefined]

但是:

  1. 否则您需要将表达式置于字符串的开头 (^) 和结尾 ($);

    > "foo 12:30 AM foo".match(/\d{1,2}:\d\d\s((AM)|(PM))/);
    ["12:30 AM", "AM", "AM", undefined]
  2. 查看RegExp.test()相反,它返回一个更简单的 true/false 而不是一个数组。

    > /^\d{1,2}:\d\d\s((AM)|(PM))$/.test("12:30 AM");
    true

做同样事情的更简单的表达式可以是 /^\d{1,2}:\d{2} [AP]M$/

关于javascript - 正则表达式在 JavaScript 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9777070/

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