1

我有一个带有文本字符串的元素,我需要在第二列中用“+”替换空格和换行符。我有以下代码:标记:

<table id="tblData">
<tr>
<td>John Smith</td>
<td>114 text text text<br/>text, text,<br/>text text<br/>text
<td>N/A</td>
</tr>
</table>

脚本:

$('#tblData td:nth-child(2)').each( function( index, element ){
console.log($(this).text()
     .replace(/ /g, '+')
     .replace('<br/>', '+')
);
});

替换空间工作正常,但替换<br/>不是。我错过了什么?

在这里拉小提琴

4

3 回答 3

2

试试这个你也需要替换\n

console.log($(this).html()
              .replace(/(<br>| |\n|\r)/g, '+')
           );

演示

于 2013-09-26T10:40:56.447 回答
1

如果要替换<br/>,则必须使用$(this).html()而不是$(this).text(). .text()不会输出html标签。对于正则表达式,请查看其他答案。这样做的一个副作用是,文本中的所有其他 html 标记在替换后仍然存在。

于 2013-09-26T10:51:22.303 回答
0

尝试这个,

$('#tblData td:nth-child(2)').each( function( index, element ){
   console.log($(this).text()
     .replace(/ |\n|\n\r|\r\n/g, '+')// use /\s|\n|\n\r|\r\n for all spaces
  );
});

小提琴

于 2013-09-26T10:43:25.463 回答