Javascript 如何在正则表达式中添加特殊符号以允许在文本字段中使用?
我有以下代码,只允许数字0-9。Javascript 如何在正则表达式中添加特殊符号以允许在文本字段中使用?,javascript,regex,Javascript,Regex,我有以下代码,只允许数字0-9。 但我想同时允许-(连字符).[-ASCII码是45] 我试过了。。但是没有用。。你能更新我的代码吗? function isNumericKey(e) { if (window.event) { var charCode = window.event.keyCode; } else if (e) { var charCode = e.which; } else { return true; }
但我想同时允许-(连字符).[-ASCII码是45]
我试过了。。但是没有用。。你能更新我的代码吗?
function isNumericKey(e) { if (window.event) { var charCode = window.event.keyCode; } else if (e) { var charCode = e.which; } else { return true; } if (charCode > 31 && (charCode < 48 || charCode > 57)) { return false; } return true; } function submitMyNumber() { var input = document.getElementById('myInput').value; return input.match(/^[0-9-]+$/) != null; }
<form>
<input type="text" id="myInput" name="myInput" onkeypress="return isNumericKey(event);" /><br />
<input type="submit" id="mySubmit" name="mySubmit" value="Submit My Number" onclick="return submitMyNumber();" />
</form></pre>
函数isNumericKey(e)
{
if(window.event){var charCode=window.event.keyCode;}
else如果(e){var charCode=e.which;}
else{return true;}
如果(charCode>31&(charCode<48 | | charCode>57)){return false;}
返回true;
}
函数submitMyNumber()
{
var input=document.getElementById('myInput')。值;
返回输入。匹配(/^[0-9-]+$/)!=null;
}
Laxman Chowdary似乎您过滤了45字符的代码
function isNumericKey(e)
{
if (window.event) { var charCode = window.event.keyCode; }
else if (e) { var charCode = e.which; }
else { return true; }
if (charCode == 45 || (charCode >= 48 && charCode <= 57)
return true;
else
return false;
}
如果要匹配日期,模式可能类似于dd(但是是哪种格式?ISO YYYY-MM-dd?或其他格式)
一个更正确的模式将是
/^\d{4}-\d{2}-\d{2}$/
也许这个更好
/^[12]\d{3}-[01]\d-[0-3]\d$/
对于DD-MM-YYYY,恢复模式非常简单:
/^[0-3]\d-[01]\d-[12]\d{3}$/
如果您想要接受29-06-2012,即2位连字符2位连字符4位,这是日期模式,正则表达式是
[0-9]{2}-[0-9]{2}-[0-9]{4}
,因此您想要接受带-。正确的?或者你能解释一下你想让你的代码接受的所有东西吗?我想显示日期,可以使用数字和分隔符-(连字符)…当你没有得到任何事件时,为什么返回true
?不应该返回false吗
?Hachi,这个代码对数字很有效…还有一件事。。在函数isNumericKey(e)中,我们没有添加45。。所以这是不允许的。。如何将其添加到条件中?如何转义连字符<代码>/^[0-9\-]+$/或者由于数字只有一个连字符作为第一个字符,这个/^-[0-9]+$/
应该更有用。在Saurabh,为了接受-(连字符),我们还必须在isNumericKey(e)中添加一个条件????
/^[0-3]\d-[01]\d-[12]\d{3}$/