【问题标题】:Can I use Regex for this purpose?我可以为此目的使用正则表达式吗?
【发布时间】:2012-04-16 10:48:09
【问题描述】:

我正在尝试通过确保只能输入文本、空格和数字来验证输入字段。我认为最简单的方法是通过执行以下操作来使用正则表达式:

function checkVal() {
var input = document.getElementById("input").value; 
if (input.match(/[a-zA-Z0-9]+$/) == null) {
    alert("error");
    }
}

更具体地说,我需要确保下划线字符不在此字段中(这非常重要)。从测试来看,它似乎无法正常工作,但我认为更是如此,因为我可能出于错误的目的使用了正则表达式,而不是因为它在语法上不正确。

在输入框中输入时,我编写一个函数来排除“下划线”字符会更容易吗?

编辑:为了更清楚一点,我只想接受字母、数字和空格。

【问题讨论】:

  • @sch 对不起,我应该更清楚,只想接受字母、数字和空格,我会更新问题以反映这一点!
  • 就个人而言,我会使用/.../.test(value) 而不是value.match(/.../)。如果您的问题是我应该验证还是尝试阻止输入,然后验证。键入只是输入表单字段值的一种方式。至少通过验证,您可以通知/提醒他们不允许使用下划线(以及为什么)。

标签: javascript jquery regex validation


【解决方案1】:

不要忘记包含字符串的开头,^(和空格):

/^[a-zA-Z0-9 ]+$/

【讨论】:

    【解决方案2】:

    尝试使用这个正则表达式:

    /^[a-zA-Z0-9 ]+$/
    

    i 表示不区分大小写:

    编辑:

    /^[a-z0-9 ]+$/i
    

    【讨论】:

    • 如果你使用i修饰符,/^[a-z0-9 ]+$/i就足够了
    【解决方案3】:

    这看起来不像你检查空格,你也只是检查以数字或字符结尾的字符串。

    试试这个:

    function checkVal() {
    var input = document.getElementById("input").value; 
    if (input.match(/^[ a-zA-Z0-9]+$/) == null) {
        alert("error");
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2014-06-10
      • 2010-09-29
      • 2015-03-21
      • 2013-05-23
      • 1970-01-01
      • 1970-01-01
      • 2012-08-28
      • 2020-01-02
      相关资源
      最近更新 更多