思路大概是先按split()分割,然后分割后的每一个正则匹配数字和大写字母,最后再用split()拼接
function sx (string){
var reg = /[^a-z]/g //匹配除小写字符之外的正则表达式
var result = [] //存放结果
//string.split('/') -> 'GdsjhdjNhfsdj10/10/10' -> ['GdsjhdjNhfsdj10', '10', '10']
//遍历数组
string.split('/').forEach((item) => {
var matchStr = item.match(reg).toString().split(',').join('')
//item.match(reg) -> 'GdsjhdjNhfsdj10'->["G", "N", "1", "0"]
//item.match(reg).toString().split(',') 对象转字符之后在通过","分割->"G", "N", "1", "0"->["G", "N", "1", "0"]
//item.match(reg).toString().split(',').join('') join方法将数组转为字符串,参数为拼接字符,这里使用空字符,GN10
result.push(matchStr)
})
//遍历结束得到 result->["GN10", "10", "10"]
return result.join('/') //["GN10", "10", "10"] -> "GN10/10/10"
}
//最后在调用
sx('字符串');