javascript对一个包含字母的字符串排序,要求只对每一处字母排序

2025-12-05 16:52:27
推荐回答(1个)
回答1:

你好,

如果确定了占位符之间的都是英文字母,其实这个功能就不难了,提供两种方法。

第一种:比较传统的,使用字符串拆分+数组循环

// 原始字符串
var str = '||||bcda||||fehg';
// 占位符
var s = '||||';
// 根据占位符拆分原始字符串
var sArr = str.split(s);
for (var i = 0, len = sArr.length; i < len; i++) {
    // 非空字符串才进行排序
    if (sArr[i]) {
        sArr[i] = sArr[i].split('').sort().join('');
    }
}
// 排序后的字符串
var rs = sArr.join(s);
console.log(rs); // ||||abcd||||efgh

第二种:使用正则表达式+replace方法

var str = '||||bcda||||fehg';
str = str.replace(/(\|\|\|\|)(\w+)/g, function(s, $1, $2) {
    return $1 + $2.split('').sort().join('');
});
console.log(str); // ||||abcd||||efgh

结果是一样的,希望是你想要的答案。