只有在javascript正则表达式中使用空格验证的数字

时间:2015-10-16 08:02:20

标签: javascript jquery regex

尝试使用空格进行数字验证。但它不适合我。

if(!user_phone.match(/[^0-9\s]/))
    {
        $('#user_phone').css({"border":"1px solid red"});
        return false;
    }

我必须使用的正则表达式是什么?

4 个答案:

答案 0 :(得分:4)

尝试使用此正则表达式/^[0-9 ]+$/[0-9 ]+ 希望这会有所帮助。

答案 1 :(得分:2)

您正在使用匹配除数字和空格之外的所有内容的negated character class,您需要将锚^放在字符类之外:

/^[0-9\s]/

另请注意,如果您想匹配多个字符,可以使用修饰符+来匹配数字和空格的一个或多个组合:

/^[0-9\s]+/

请注意\s将匹配所有空格包含标签和...,如果您只想匹配空间^[0-9 ]+所需的空间。如果您想使用此正则表达式在多行文本中,您需要使用标记m,这使得正则表达式引擎从每行的开头匹配锚^

答案 2 :(得分:1)

您也可以使用:

/^[\d\s]+$/

答案 3 :(得分:1)

以下是如何完成的示例:jsfiddle

以下是实际代码:

$('button').on('click', function(e){
    user_phone = $('#user_phone').val();
    $('#user_phone').css({"border":"1px solid #ccc"});
    if(!user_phone.match(/^\d[\d\s]+\d$/))
    {
        $('#user_phone').css({"border":"1px solid red"});
    }      
})

检查意味着:

  1. 如果匹配不成立,请将输入的边框着色为红色。
  2. 在匹配中说:如果值以数字开头并以数字结尾(因为以空格开头/结尾没有任何意义),并且在两者之间只有数字和空格(多于一个)而不是一个,那是真的(但由于不是(!),它会检查无效的电话号码。
  3. 也永远不要忘记重置状态,因为如果您输入错误的电话号码,在稍后阶段您将始终获得红色背景