我正在尝试从邮政编码的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 => ë
答案 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);