开发者

preg_match: nothing to repeat / no match

I am using this: if(!preg_match('/^+[0-9]$/', '+1234567'))

and am getting:

Warning: preg_match() [function.preg-match]: Compilation failed: nothing to rep开发者_高级运维eat at offset 1

any ideas why?


update: Now using this: if(!preg_match('/^\+[0-9]$/', '+1234567'))

and am getting no match.

any ideas why?


+ is a special character that indicates 1 or more of the previous character, and by not escaping it you are applying it to the caret. escape it with \ and it will match a literal plus sign.

if(!preg_match('/^\+[0-9]$/', '+1234567'))

EDIT:

The reason why it didn't match is because you specified 1 digit from 0-9 and the end of the string with $. You need to make it a variable amount of digits.

if(!preg_match('/^\+[0-9]+$/', '+1234567')) {

Shorter version:

if(!preg_match('/^\+\d+$/', '+1234567')) {


'/^\+[0-9]$/' means that begining of the line has to be plus sign folowed by a number then end of line.

'/^\+[0-9]+$/' means that begining of the line has to be plus sign folowed by a one or more numbers then end of line.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜