split - jquery大写字符串的第一部分

  显示原文与译文双语对照的内容
91 2

为什么 split 函数没有保留分隔符的选项?

这是我的字符串:

story 01<div>lorem</div><div>lorem</div>

以下是所需的结果:

story 01<div>lorem</div><div>lorem</div>

所以我只需要大写第一部分( 放在第一个 <div> 标记之前)

这是我的方法:

let arr = string.split('<div>');
let title = arr[0].toUpperCase();
arr.shift();
newarr = [];
$.each(arr, function (i, val) {
 val = '<div>' + val;
 newarr.push(val);
});
let result = title + newarr;
console.log(result);

结果:STORY 01<div>lorem</div>,<div>lorem</div>

问题是 </div><div> 之间的comma

任何帮助?

时间:原作者:0个回答

69 5

除了 < 之外,你可以使用正则表达式来匹配任何内容,然后将匹配的子字符串大写:

const input = `story 01<div>lorem</div><div>lorem</div>`;
console.log(
 input.replace(/^[^<]+/, start => start.toUpperCase())
);

假设匹配的字符串中不包含非标记 <如果是这样,那么它将会更复杂一些:

const input = `story <01<div>lorem</div><div>lorem</div>`;
console.log(
 input.replace(/^((?!<[^<]+>).)+/, start => start.toUpperCase())
);

对于更复杂的事情,可以能最好使用 DOMParser 或者者类似于正则表达式。

原作者:
...