javascript对一个包含字母的字符串排序,要求只对每一处字母排序
假设字符串a="(占位)bcda(占位)dabc……"之类的,如何将里面每一处字母子串排序,得到排序好的字符串?万分感谢!!!就像这样的字符串:1.燃烧的必要条件有哪些?...
假设字符串a="(占位)bcda(占位)dabc……"之类的,如何将里面每一处字母子串排序,得到排序好的字符串?万分感谢!!!
就像这样的字符串:
1.燃烧的必要条件有哪些?(ADB)
A 可燃物 B 助燃物
C 空气 D 着火源
2燃烧产物的不利方面主要有(ACB)
A 引起人员中毒、窒息、灼伤 B 影响视线
C 成为火灾发展蔓延因素 D 对燃烧有阻燃作用
……
有些答案是没排序的,把每处答案排好序 展开
就像这样的字符串:
1.燃烧的必要条件有哪些?(ADB)
A 可燃物 B 助燃物
C 空气 D 着火源
2燃烧产物的不利方面主要有(ACB)
A 引起人员中毒、窒息、灼伤 B 影响视线
C 成为火灾发展蔓延因素 D 对燃烧有阻燃作用
……
有些答案是没排序的,把每处答案排好序 展开
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
结果是一样的,希望是你想要的答案。
追问
其实我的意思是(占位)表示任意的非字母,不是固定的,有什么好办法吗?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询