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


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

我正在尝试从邮政编码的outcode部分检索前一两个字母。输出代码可以是 X 1、XX 11、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

这很好用

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

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

在 Javascript 中尝试:

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