基础 - 匹配数字

  • 作者:KK

  • 发表日期:2017.6.7


JS代码

var str = '今年小明17岁';

var pattern = /\d+/;

var matchResult = str.match(pattern);

console.log(matchResult[0]); // 17

PHP代码

$str = '今年小明17岁';

$pattern = '/\d+/';

preg_match($pattern, $str, $matchResult);

echo $matchResult[0]; // 17

解释

其实\d就是匹配1个数字的意思,\d+后面多了个+号表示匹配1个或连续多个数字


顺带一提PHP的定界符,建议用#

在PHP里,正则表达式的定界符只要左右两边相同就可以,不一定非要用/号,其实我个人习惯使用#号,因为在这种匹配方式下/号要转义:

preg_match('/usr/local/apache/conf...', '/\/local\/.+/');

因为不转义的话解析器可能会误以为下一个/号就是表达式结束嘛

但如果用#号做定界符就不用转义了:

preg_match('/usr/local/apache/conf...', '#/local/.+#');

于是我就一直用#号了,简单直接,以免碰上要转义/号的情况