JavaScript-用于时间或特定字符串的正则表达式

JavaScript-用于时间或特定字符串的正则表达式,javascript,html,regex,Javascript,Html,Regex,在我的表单中,我有一个字段,询问用户希望我什么时候给他们打电话 输入代码如下(不包括标记): 如您所见,我使用了两个单独的正则表达式,一个用于匹配格式为HH:MM的时间;另一个用于匹配特定字符串“anytime” 在函数本身中,我使用|查看是否匹配了其中一个正则表达式 注意:我知道我使用的是onchange而不是onsubmit,标签由调用主函数的onsubmit组成。在两个测试之间必须使用AND&而不是OR|: if ((!callback.test(document.bookingsform

在我的表单中,我有一个字段,询问用户希望我什么时候给他们打电话

输入代码如下(不包括
标记):

如您所见,我使用了两个单独的正则表达式,一个用于匹配格式为HH:MM的时间;另一个用于匹配特定字符串“anytime”

在函数本身中,我使用
|
查看
是否匹配了其中一个正则表达式


注意:我知道我使用的是
onchange
而不是
onsubmit
标签由调用主函数的
onsubmit
组成。

在两个测试之间必须使用AND
&
而不是OR
|

if ((!callback.test(document.bookingsform.contactconvenience.value)) 
    && 
    (!callbackanytime.test(document.bookingsform.contactconvenience.value))) {
不是(A或B)不是A也不是B

您还可以使用唯一的正则表达式:

/^\d{2}:\d{2}|\s*anytime\s*$/;

假定午夜00:00

var callback = /^(([01]\d|2[0-3]):([0-5]\d)|anytime)$/;

if (!callback.test(document.bookingsform.contactconvenience.value))
{
   // error code
}

这不起作用,如果我输入任意字符,它不会显示错误。我删除了
|
,现在只使用一个正则表达式。有什么想法吗?是的,这对我不起作用。我甚至复制并粘贴了你的代码,仍然没有。对我来说可以吗?(必须从输入中单击以引发事件)多么奇怪,我复制并粘贴了您的JSFIDLE代码,现在它工作得非常完美。在函数的“错误代码”区域中,一定有一些输入错误的代码,但我没有找到。现在效果很好。谢谢我改了,但没用。然后我尝试了你独特的正则表达式,但仍然不起作用。有什么想法吗?
联系便利性的价值是什么。我想
没有
?我没有给标记一个
value
属性。@RoyalSwish:我是指当你输入函数时的值。
/^\d{2}:\d{2}|\s*anytime\s*$/;
var callback = /^(([01]\d|2[0-3]):([0-5]\d)|anytime)$/;

if (!callback.test(document.bookingsform.contactconvenience.value))
{
   // error code
}