Regex无法在JavaScript中工作
Regex not working in JavaScript
我正在努力确保人们输入的格式正是这样的:
.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]
但是:
否则,您需要将表达式固定在字符串的开头(
^
)和结尾($
);> "foo 12:30 AM foo".match(/'d{1,2}:'d'd's((AM)|(PM))/); ["12:30 AM", "AM", "AM", undefined]
看看
RegExp.test()
,它返回一个更简单的true
/false
,而不是一个数组。> /^'d{1,2}:'d'd's((AM)|(PM))$/.test("12:30 AM"); true
做同样事情的一个更简单的表达式可以是/^'d{1,2}:'d{2} [AP]M$/
假设您在单行输入字段中检查它(而不是在文本区域中搜索它),您应该执行以下操作:
/^'d{1,2}:'d'd's[AP]M$/
这样的东西怎么样:
.match(/([0]?[1-9]|1[0-2])(:)[0-5][0-9]?( )?(AM|PM)/)
如果您的问题是换行符。你可以试试:
'12:30
AM'.replace(/'n/, '').match(/'d{1,2}:'d'd's((AM)|(PM))/)
结合Matt、c0deNinja和我自己的想法,你最终应该得到:
/^(0?[1-9]|1[0-2]):[0-5][0-9]'s?[AP]M$/.test(input);
我已经在中尝试过您的代码http://www.regular-expressions.info/javascriptexample.html它奏效了。
顺便说一下,您还需要测试时间是否有效。您的代码现在可以接受这样的事情99:12AM,就好像它们是正确的一样。我建议你用这样的东西。
'b(1[0-2]|'d):[0-5][0-9]'s([aApP][mM])'b
=)
您的正则表达式似乎是正确的。结合上面的一些想法,你可以用Regex:测试你的字符串
^(1[0-2]|'d):[0-5]'d [aApP][mM]$
以及Javascript中的测试代码:
var regex = /^(1[0-2]|'d):[0-5]'d [aApP][mM]$/g;
var input = "2:30 PM";
if(regex.test(input)) {
var matches = input.match(regex);
for(var match in matches) {
alert(matches[match]);
}
} else {
alert("No matches found!");
}
相关文章:
- 用户名输入如果其他块不能正常工作/Javascript-jQuery-AJAX
- 变量只能在函数中局部工作,不能全局工作-Javascript
- onClick按钮不工作javascript/php/jquery mobile
- 点击骰子赢得't工作(javascript)
- for循环,if else不工作Javascript
- 获取下一个不工作Javascript DOM的同级父节点的子节点
- 可以'没有一个函数可以工作——Javascript
- OnFocus 不是工作 JavaScript HTML;不显示对焦时计算和按钮单击时
- 从 iframe 访问主站点中的工作 JavaScript
- 对于在循环中无法按预期工作 JavaScript
- 在阅读表单输入后写回HTML;t工作(Javascript)
- 复选框单击有效,取消选中复选框不工作Javascript
- 代码在Codepen中工作,而不是在浏览器中工作:JavaScript在鼠标滚轮上缩放SVG
- 当用户在这个工作javascript注释框中提交注释时,您将如何添加用户图像和名称
- 向Wordpress添加工作Javascript谷歌地图代码
- 确认/重定向功能不工作-javascript
- 当/patt/版本工作时,为什么RegExp版本不工作?(Javascript)
- Firefox加载项按钮代码不工作-Javascript
- 计算器功能不工作- Javascript
- 将工作JavaScript对象序列化为仅保留属性的JSON