如何使用javascript正则表达式检查“空”表单字段?

时间:2010-02-12 03:14:31

标签: javascript jquery regex

我正在开发基于php + javascript的项目,并已在以下位置编写了一个模型页面: my website

我知道如何使用javascript或php来检查表单的特定字段是否为“空”,也就是说,它是否包含除了whitepsace字符之外的字母数字字符(例如,空格,制表符和换行符)。 / p>

但是,我正常的apporach不再有效,因为我现在使用的jquery插件依赖于regex来验证字段。

如果您转到第三个标签(3.填写运输信息和付款),您可以在名字字段中输入内容并自动进行检查。精细。但是,如果 你只需在那里放一些空格字符并跳转到下一个字段,好吧,它仍然感觉还可以,这是不正确的,因为没有人的名字是什么都没有!

问题?在后面有一个像这样的正则表达式:

"noSpecialCaracters":{
                    "regex":"/^[0-9a-zA-Z ]+$/",
                    "alertText":"* No special caracters allowed"},

这不会过滤掉空字符。

我在线搜索并尽力制作另一个正则表达式,我试过

"regex":"/^[^]+$/"

用于匹配非空字符,但这不会...

任何人都可以帮助我吗?非常感谢提前!

6 个答案:

答案 0 :(得分:14)

尝试使用非空格:

([^\s]*)

示例:

/([^\s])/.test("   A"); //TRUE
/([^\s])/.test("    "); //FALSE

答案 1 :(得分:9)

function anyChar(str){
    return /\S+/.test(str);
}
如果为空数据,

将返回false

答案 2 :(得分:1)

要回答您的问题,最小正则表达式为/\S/,只要至少有一个非空白字符,它就会匹配。

但是,你可能不希望有人输入名字'12345'或'!!!',所以最好使用/[a-z]/i,因为这个正则表达式只会匹配至少有一个按字母顺序排列的字符。

答案 3 :(得分:1)

我正在使用

/^\s*\S+.*/

表示

  • 零个或多个空格字符(\s*),后跟
  • 一个或多个非空白字符(\S+),后跟
  • 任何内容,空格与否(.*)。

这允许单个单词或多个单词。我一开始就允许空格,因为我知道在开始时错过一个空格是多么容易,并且为什么不允许你的输入真的很困惑:|

Mozilla开发者网络有一个很棒的JavaScript regex page供参考。

答案 4 :(得分:0)

您可能想尝试在以下^\s*(expression)\s*$中包装表达式。然后使用组来查找“修剪”匹配。这只消除了尾随或前导空格。

您可以强制用户输入剪裁的文本,或者您可以优雅地接受未修剪的输入(更好),因为我发现复制和粘贴文本通常会留下一些用户可能不知道的尾随或前导空格。

答案 5 :(得分:0)

/^\s*[0-9a-zA-Z][0-9a-zA-Z ]*$/

确保至少有一个字符不是空格,并且是允许的字符之一。

你可能还想考虑其他字符,如连字符( - )或撇号('),它们也可能出现在名字中......

/^\s*[0-9a-zA-Z][0-9a-zA-Z '-]*$/