如何处理字符串以使字符保持最后一位数?

Hug*_*PEZ 0 javascript string

鉴于字符串,例如G08a,Professor3,Obs...

如何在最后一个数字后切这些字符串,因此返回:

G08a        ==> G08
Professor3  ==> Professor3
Obs         ==> Obs
Run Code Online (Sandbox Code Playgroud)

开始jsfiddle:https://jsfiddle.net/dpyqg2mk/

小智 5

你可以使用正则表达式.

var ss = ["G08a", "Professor3", "Obs"];

var res = ss.map(s => (/^(.*?\d)\D*$/.exec(s) || [,s])[1]);

console.log(res);
Run Code Online (Sandbox Code Playgroud)

这会通过一个数字向上收集所有字符,该数字后跟一系列零或多个非数字,这些数字将一直延续到字符串的末尾.在组中捕获初始字符和非数字之前的最后一个数字.

我用作.map()演示的便利,并在正则表达式找不到匹配时替换了临时数组.