-1

这段代码取自 codeigniter,我试图将其复制到一个允许数字字符和破折号的新函数中。我需要在这个正则表达式中添加什么来允许破折号和括号?

preg_match( '/^[\-+]?[0-9]*\.?[0-9]+$/', $str);
4

2 回答 2

2

您的正则表达式意味着:以 - 或 + MAYBE 开始行,然后 0-9 零次或多次,然后 a 。可能然后以下列数字中的至少一个结尾:0-9

您需要指定您希望 RegEx 执行的操作,然后有人可以编写正确的 RegEx。

编辑 给你:

<?php

// 555-555-5555 or (555) 555-5555 or (555)555-5555
$str = '555-555-5555';
if (preg_match( '/^((\([0-9]{3}\)) ?|[0-9]{3}-)[0-9]{3}-[0-9]{4}$/', $str) == 1){
    echo 'Yes!';
}else{
    echo 'No!';
}
?>
于 2012-11-06T04:30:17.220 回答
1
preg_match( '/^\+?[-0-9]*\.?[-0-9]+$/', $str);

更新:

preg_match( '/^\+?[-0-9()]*\.?[-0-9()]+$/', $str);
于 2012-11-06T04:16:37.133 回答