【问题标题】:How to allow Forward Slash (/) in JavaScript Regex [duplicate]如何在 JavaScript 正则表达式中允许正斜杠 (/) [重复]
【发布时间】:2014-06-14 23:28:40
【问题描述】:

在我的 RadGrid 中,我使用 DATE 列的过滤器。日期格式类似于 16/12/1990。过滤器文本框应该只允许数字和/。如何编写 JavaScript 函数来做到这一点?

function CharacterCheckDate(text, e)
{
    var regx, flg;
    regx = /[^0-9/'' ]/
    flg = regx.test(text.value);
    if (flg)
    {
        var val = text.value;
        val = val.substr(0, (val.length) - 1)
        text.value = val;
    }
} 

【问题讨论】:

  • 这个正则表达式有什么问题?

标签: javascript asp.net regex telerik-grid


【解决方案1】:

您不必担心字符类中的/ (thanks Robin for pointing that out)。例如,

console.log(/[^\d/]/.test("/"));
# false
console.log(/[^\d/]/.test("a"));
# true

如果你真的有疑问,只需用反斜杠将其转义,就像这样

regx = /[^0-9\/'' ]/

另外,你不需要指定' 两次,一次就足够了。

regx = /[^0-9\/' ]/

您可以使用\d 字符类,而不是显式使用数字,就像这样

regx = /[^\d\/' ]/

所以,你可以像这样写你的正则表达式

regx = /[^\d/' ]/

【讨论】:

  • 谢谢你..它工作正常..
  • 不需要在字符类中对其进行转义,请参阅stackoverflow.com/questions/9226731/…
  • @Robin 谢谢人 :) 现在在答案中包含一个示例。请检查。
  • 不客气 :) 我同意您的回答,但现在我看不出正则表达式与使用的 OP 有何不同(清洁剂除外)。我不熟悉 Telerik-grid,但 OP 的问题(如果他有的话?)可能在代码的其余部分。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-01
相关资源
最近更新 更多