我如何使这个preg_match()reg表达式忽略空格?

时间:2010-12-22 17:27:00

标签: php regex whitespace preg-match

我有这个正则表达式:

if(preg_match("/^(\\d+)(,)(\\d+)$/") ) { ... }

测试用户输入了一对用逗号分隔的数字(例如120,80)。我有那个部分正常工作。但是,我预计用户可能会意外地在任何字符之间输入空格。我想使表达式忽略所有空白字符,无论它们出现在模式中的哪个位置。我试过这个:

if(preg_match("/x^(\\d+)(,)(\\d+)$/x") ) { ... }

还有这个:

if(preg_match("/(^(\\d+)(,)(\\d+))$/x") ) { ... }

但似乎没有任何效果。任何见解将不胜感激。顺便说一下,我还在学习这些东西,所以考虑到这一点!谢谢。 :d

2 个答案:

答案 0 :(得分:3)

在进行正则表达式匹配之前,您可能只是删除空格。

$input = str_replace(" ", "", $input);

答案 1 :(得分:2)

尝试:

if(preg_match("/^\s*\d+\s*,\s*\d+\s*$/",$input) ) { 
   // $input has two numbers separated by a comma and may have whitespace
   // around the number and/or around the comma.
}