返回字符串中第一个数字之前出现的所有字母

时间:2016-03-20 10:00:58

标签: javascript php jquery preg-replace

我正在尝试从邮政编码的outcode部分检索前一个或两个字母。输出代码的格式可以是 X 1, XX 11, XX 1X, X 1X。我想做的是检索这些外码的粗体部分。

到目前为止,我正在使用一个解决方案,它接受字符串的前两个字符,然后从结果中删除数字:

PHP:

$str = preg_replace('/[0-9]+/', '', substr($outcode, 0, 2));

JavaScript的:

outcode.substr(0, 2).replace(/\d+/g, '')

这很好用,但我想知道在PHP和JavaScript / jQuery中是否有更有效的方法,例如找到字符串中的第一个数字并删除它以及其后的所有其他内容?我有大约3000个过滤码,过滤效率是关键。感谢。

修改

根据一些评论,这里有一些现实生活中的例子,并带来了预期的结果。请记住,outcode字符串只是上面显示的格式之一,没有其他格式:

EX13 => EX

EC2M => EC

E1W => ë

E2 => ë

2 个答案:

答案 0 :(得分:1)

这很好用

"XX01XX".split(/[0-9]/)[0];
"XX".split(/[0-9]/)[0];

添加.slice(0,2)以获取第一个字符

答案 1 :(得分:0)

在Javascript中尝试:

firstDigit = outcode.match(/\d/); will give you the first digit in the string
index = outcode.indexOf(firstDigit);
outcode.substr(0, index);