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

return all the letters that occur before the first number in a string

我正在尝试从邮政编码的外码部分检索前一两个字母。输出代码的格式可以是 X1, XX11, XX1X, X1X。我想做的是检索这些外码的粗体部分。

到目前为止,我使用的解决方案是获取字符串的前两个字符,然后从结果中删除数字:

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 => E

E2 => E

在Javascript尝试:

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

这个效果很好

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

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