jQuery正则表达式 - 无法在img标签中替换break / new行到<br/>标题属性

时间:2016-11-30 17:38:54

标签: javascript jquery regex replace newline

我写了很多包含img属性的title代码。我希望在使用jQuery title之后删除div img标记。 title包含break / new行,因此当jQuery将title附加到HTML时,该break / new行显示一个空格。

我尝试使用正则表达式的servel代码,但我仍然无法将break / new行替换为<br>

  1. $.title.replace(/\r/, "<br />");
  2. $.title.replace(/\n/, "<br />");
  3. $.title.replace(/\r\n/, "<br />");
  4. $.title.replace(/\\r\\n/, "<br />");
  5. $.title.replace(/\\r/, "<br />");
  6. $.title.replace(/\\n/, "<br />");
  7. $.title.replace(" ", "<br />");
  8. $.title.replace("&#x20;", "<br />");
  9. $.title.replace("&#x0D;&#x0A;", "<br />");
  10. 的jsfiddle:

    &#13;
    &#13;
    $.title = $(".abc").attr('title');
    alert($.title);
    
    //not working
    $.title.replace(/\r\n/, "<br />");
    
    
    alert($.title);
    $(".abc").after("<div>" + $.title + "</div>");
    &#13;
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <img class="abc" title="abc
    def" />
    &#13;
    &#13;
    &#13;

1 个答案:

答案 0 :(得分:1)

replace()方法在字符串中搜索指定的值或正则表达式,并返回一个替换指定值的新字符串。

因此您必须将此新字符串分配给$ .title

试试这样。

$.title = $(".abc").attr('title');
alert($.title);

//working
$.title = $.title.replace(/(\r\n|\n|\r)/gm,"<br />");


alert($.title);
$(".abc").after("<div>" + $.title + "</div>");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<img class="abc" title="abc
def" />