我怎样才能更换某些回车换行,然后用一个破折号 ?(How can I replace cert

2019-09-17 03:21发布

我怎样才能更换序列ASCII 13 ASCII 10 - 在使用JavaScript或jQuery的网页中的TD元素中的文本(CR LF DASH或/ R / N-)? 有关于这个计算器中和其他地方类似quesitons,但列出的解决方案并没有在这个特别的情况下工作。 进入的HTML是由一块我的客户的旧版软件的这是不会改变动态生成的,但它引用一个JavaScript文件,我可以改变的。 页面的缩短版如下。 实际的页面包含的行数据的零至二十,其中一些包含多个行。 我的用户在Internet Explorer 8和下面都不两条线的工作。 我试过刚刚更换回车,只是更换换行。 我已经试过这从JavaScript和jQuery没有任何明显的效果。 当我从保存的Internet Explorer 8的页面,并查看它在十六进制编辑器,回车和换行字符存在于客户端。 问题的症结暴露在文中的JavaScript / N。

我想执行该置换,因为我想文本的两行的任何时间序列/ R /页面正存在于元件中显示的输出出现。

请注意,我已经包括更换两个版本,一个jQuery和JavaScript的一个。 无论做什么,我想要它做的。

   <html>
    <head>
    <title>Page Testing </title>
    <script src="js/jquery-1.7.2.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            $('td').each(function () {
                $this = $(this);
                $this.html($this.html().replace(/\r\n\-/g, "<br/>-"));
                this.innerHTML = (this.innerHTML.replace(/\r\n\-/g, "<br/>-"));
            });
        });
    </script>
    </head>
    <body>
    <table>
    <tbody>
    <tr>
     <td>-First Content
    -Second Line of Content</td>
    <td>-How I want it to look<br/>-After the transformation</td>
    </tr>
    </tbody>
    </table>
    </body>
    </html>

Answer 1:

你的问题说,你只关心它们显示在不同的行,没有特别有关替换\ r \ n。

你可以考虑CSS来解决这个问题。

<style>
    tr {
        white-space:pre-line;
    }
</style>

看到不同的白色空间值是如何工作的。



Answer 2:

这适用于您的具体情况:

$this.html($this.html().replace(/\s+\-/g, "<br /> -"));

而不是寻找CRLF字符,它需要的任何空白后跟一个破折号。 如果在你的内容破折号后面的空间 ,他们也将有BR标签添加。

有一个与IE 8的新行一些奇怪的行为。 如果我得到一个解释,我会及时更新。



Answer 3:

你只是更换\正,但你说,你是要替换的字符序列是\ r \ N-

尝试把\ r到您的替换表达式。

\ r字符,而不是一个正常支持的Windows / Linux的新行,往往会仍然显示在浏览器/源的观众,其试图迎合大家一个换行符。



Answer 4:

你可以试试

$this.html().replace(/[\n\r]+\-/g, "<br/>-")

它取代了换行符和回车符。



文章来源: How can I replace certain carriage return line feed followed by a dash with a
?