このコード スニペットは codeigniter から取得したもので、数字とダッシュを使用できる新しい関数にコピーしようとしています。ダッシュと括弧も許可するには、この正規表現に何を追加する必要がありますか?
preg_match( '/^[\-+]?[0-9]*\.?[0-9]+$/', $str);
あなたの正規表現はこれを意味します: 行を - または + MAYBE で始めます 次に 0-9 ゼロ回以上 次に a . MAYBE その後、次の数字の少なくとも 1 つで終わります: 0 ~ 9
正規表現に何をさせたいかを指定する必要があり、そうすれば誰かが正しい正規表現を書くことができます。
編集 ここに行きます:
<?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!';
}
?>
preg_match( '/^\+?[-0-9]*\.?[-0-9]+$/', $str);
アップデート:
preg_match( '/^\+?[-0-9()]*\.?[-0-9()]+$/', $str);