这段代码取自codeigniter,我正在尝试将其复制到一个允许数字字符和短划线的新功能中。我还需要添加到此正则表达式以允许破折号和括号?
preg_match( '/^[\-+]?[0-9]*\.?[0-9]+$/', $str);
答案 0 :(得分:2)
你的正则表达式意味着: 用 - 或+ MAYBE开始该行 然后0-9零次或多次 然后一个。也许 然后以以下数字中的至少一个结束: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!';
}
?>
答案 1 :(得分:1)
preg_match( '/^\+?[-0-9]*\.?[-0-9]+$/', $str);
更新
preg_match( '/^\+?[-0-9()]*\.?[-0-9()]+$/', $str);