var str = '<td>a</td><td>b</td>'; console.log(str.split(/<\/?td>/g));
结果呢 ["", "a", "", "b", ""] .
["", "a", "", "b", ""]
为什么会出现空字符串?
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/split
如果separator是包含捕获圆括号的正则表达式,那么每次匹配分隔符时,捕获圆括号的结果(包括任何未定义的结果)都将拼接到输出数组中。然而,并非所有浏览器都支持此功能。
让我们看一个更简单的例子:
",a,,b,".split(",") // ["", "a", "", "b", ""]
x.split(a).join(a) 应该相等 x ). 对你来说,两者都是 </td> 和 <td> <td> 一开始 </td>
x.split(a).join(a)
x
</td>
<td>
另一个答案告诉你原因,我会给你一个快速的解决办法。 如果要从字符串中删除“<td>”和“</td>”,只需将它们替换为nothing(删除它们)。 那么
str.replace(/<\/?td>/g, "").split("")