Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript函数_Javascript_String_Textbox_Full Text Search - Fatal编程技术网

Javascript函数

Javascript函数,javascript,string,textbox,full-text-search,Javascript,String,Textbox,Full Text Search,所以我有一个文本框,允许最多输入5个字符 用户应在文本框中以hh:mm或hhmm格式输入时间 假设用户输入1:2:3或1:2等,则应显示警报消息(“时间格式不正确”) 是否有任何方法可以检查除第一次以外的所有其他发生的:,并提醒用户 (这需要在javascript函数中完成) 这是我用来检查文本框中输入的非数字值(不包括:)的方法: <script type='text/javascript'> function getClks(){ ... var

所以我有一个文本框,允许最多输入5个字符

用户应在文本框中以hh:mm或hhmm格式输入时间

假设用户输入1:2:3或1:2等,则应显示警报消息(“时间格式不正确”)

是否有任何方法可以检查除第一次以外的所有其他发生的:,并提醒用户

(这需要在javascript函数中完成)

这是我用来检查文本框中输入的非数字值(不包括:)的方法:

    <script type='text/javascript'>

    function getClks(){
    ...
    var re=":";
    var found = clks.match(re);
     if (clks.match(/^[0-9:]/)){
    alert('Invalid time value');
    }

    if (found=:){
    var splitime = clks.split(":");
    var hours = splitime[0];
    var mins = splitime[1];
......
    }
    }
    </script>

函数getClks(){
...
var re=“:”;
找到的var=时钟匹配(re);
如果(时钟匹配(/^[0-9://)){
警报(“无效时间值”);
}
如果(找到=:){
var splitime=clks.split(“:”);
var小时数=拆分时间[0];
var mins=splitime[1];
......
}
}

尝试使用此jquery插件: 它将屏蔽您的文本框:

$("#hour").mask("99:99");

@alexl的jQuery插件可能已经足够了,但为了完整性起见

在jQuery上下文之外,我会使用,
/([0-9][0-9]):([0-9][0-9])/
,并像这样测试数字字符串:

var timestr = /* .. get the text .. */
if(timestr.match(/([0-9][0-9]):([0-9][0-9])/) {
    console.log('Good number string');
} else {
    console.log('Bad number string');
}

除非你有很好的理由改变用户的输入。我建议只提醒用户他们的输入与正确的格式不匹配

如果确实要删除字符,可以将该函数与一些正则表达式一起使用,以删除额外的
字符

您可以使用或来测试输入的格式是否正确


类似于
/^\d{1,2}:\d{2}$/
的东西应该可以用。

其他人都解释了该怎么做。这里有一个更具体的例子说明如何使用它

var regex = new RegExp("\\d{2}[:]\\d{2}");

if (regex.test(input)) {
   var array = input.split(":");
   var hours = array[0];
   var minutes = array[1];
} else {
   alert("malformed input");
}

你可以这样做

加价

<input id="myinput" maxlength="5" type="text" />
<input type="button" onclick="test()" value="test" id="testbtn" />

示例=>

谢谢alex:)但不幸的是,我无法在代码中使用jQuery。有什么字符串方法可以帮助我实现它吗?-1使用jQuery依赖性和jQuery插件?糟糕透了。jQuery插件完全是过火了,使用起来很可笑。你忘了
RegExp.prototype.test
@Raynos,是的,我做了,我也没有检查时间是否有效。我可能应该使用/^(\d{1,2}):(\d{2})$/然后添加一些功能来检查
$1<24
$2<60
。谢谢..但是你能解释一下这是怎么回事吗?var re=newregexp(“^([0-1][0-9]|[2][0-3])(:([0-5][0-9]){1,2}$”;我对正则表达式不太熟悉,这就是为什么。([0-1][0-9]|[2][0-3])=>00和23之间的2位数字(即24不合适):=>两位数后必须有冒号。。。([0-5][0-9])=>00和59之间的2位数字(即60不正常)和。。最重要的..^=>regexp开始,$=>regexp endsok。我想我能理解一点。但是我的代码中有一个12小时的格式,那么我该如何编写它呢?另外,我也在为以hhmm格式输入的用户做一个单独的验证。不幸的是,在我的代码中,冒号不是必须的。这就是为什么,我只想能够计算冒号的数量,如果它大于1,则显示警报。任何建议?
/(?:0?\d|1[012]):?[0-5][0-9]/
都应该对你有用,只要你不在乎秒数。它将匹配12:00和0:00,不确定您对值有多挑剔。
    var re = new RegExp("^([0-1][0-9]|[2][0-3])(:([0-5][0-9])){1,2}$");
    var myInput = document.getElementById('myinput');
    function test(){
        alert(re.test(myInput.value)); //alerts true if the input is well-formed
    }