我有一个用户表单,我在其中一个字段中输入电话号码作为输入。我有两个单独的RegEx语句检查输入。preg_replace在我的PHP脚本不起作用
第一个是:
preg_match('/^([\(]{1}[0-9]{3}[\)]{1}[\.| |\-]{0,1}|^[0-9]{3}[\.|\-| ]?)?[0-9]{3}(\.|\-|)?[0-9]{4}$/', $phone);
和它的伟大工程。它可以识别多种不同的格式,即222-333-4444或者2224445555.
在另一方面,当我尝试:
preg_replace('/\+?1?[-\s.]?\(?(\d{3})\)?[-\s.]?(\d{3})[-\s.]?(\d{4})/g', '($1) $2-$3', $phone);
这是应该进入的字符串格式化为(222)3334444格式,$ preg_replace()调用后$ phone保持不变。
任何帮助将不胜感激!
我不确定您希望以这种方式替换文本中的$值。你有4个捕获组,你引用3个。不应该最后一个是4美元? – kapa 2010-10-21 06:38:57
@bazmegakapa当我将preg_replace中显示的这种模式插入http://gskinner.com/RegExr/时,它完美地工作。我的问题在PHP脚本中。我必须在那里做错事。 – incognito 2010-10-21 15:10:32