Javascript 如何将转换后的文本字符串恢复为原始HTML布局?
这个问题来自于人们公认的答案 下面的代码将检测Javascript 如何将转换后的文本字符串恢复为原始HTML布局?,javascript,jquery,html,split,jquery-selectors,Javascript,Jquery,Html,Split,Jquery Selectors,这个问题来自于人们公认的答案 下面的代码将检测中的特定单词,将检测到的单词更改为另一个单词,然后使用.text()方法呈现中的所有内容。尽管这是一个可行的解决方案,但是否有一种方法可以自动将文本字符串转换回原始HTML布局格式,同时保留新创建的文本字符串 也就是说,新的输出应该保持换行符,但不应该仅限于这些换行符(应该保留所有HTML) HTML: <div class="dealer-addy"> 8726 N. Royal Ln<br> Irving,
中的特定单词,将检测到的单词更改为另一个单词,然后使用.text()
方法呈现
中的所有内容。尽管这是一个可行的解决方案,但是否有一种方法可以自动将文本字符串转换回原始HTML布局格式,同时保留新创建的文本字符串
也就是说,新的输出应该保持换行符,但不应该仅限于这些换行符(应该保留所有HTML)
HTML:
<div class="dealer-addy">
8726 N. Royal Ln<br>
Irving, TX 75063<br>
email@aol.com
</div>
var text = $(".dealer-addy").text();
function extractEmails ( text ){
return text.match(/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/gi) ;
}
var email = extractEmails(text);
var value = $(".dealer-addy").text();
value = value.replace(email, "new@email.com");
$(".dealer-addy").text(value);
8726 N. Royal Ln Irving, TX 75063 new@email.com
8726 N. Royal Ln<br/>
Irving, TX 75063<br/>
new@email.com
输出:
<div class="dealer-addy">
8726 N. Royal Ln<br>
Irving, TX 75063<br>
email@aol.com
</div>
var text = $(".dealer-addy").text();
function extractEmails ( text ){
return text.match(/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/gi) ;
}
var email = extractEmails(text);
var value = $(".dealer-addy").text();
value = value.replace(email, "new@email.com");
$(".dealer-addy").text(value);
8726 N. Royal Ln Irving, TX 75063 new@email.com
8726 N. Royal Ln<br/>
Irving, TX 75063<br/>
new@email.com
所需输出:
<div class="dealer-addy">
8726 N. Royal Ln<br>
Irving, TX 75063<br>
email@aol.com
</div>
var text = $(".dealer-addy").text();
function extractEmails ( text ){
return text.match(/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/gi) ;
}
var email = extractEmails(text);
var value = $(".dealer-addy").text();
value = value.replace(email, "new@email.com");
$(".dealer-addy").text(value);
8726 N. Royal Ln Irving, TX 75063 new@email.com
8726 N. Royal Ln<br/>
Irving, TX 75063<br/>
new@email.com
8726北皇家Ln
德克萨斯州欧文75063
email@aol.com
您应该使用jQuery.html而不是文本
var text = $(".dealer-addy").html();
function extractEmails ( text ){
return text.match(/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/gi) ;
}
var email = extractEmails(text);
var value = $(".dealer-addy").html();
value = value.replace(email, "new@email.com");
$(".dealer-addy").html(value);
谢谢,这样做既快捷又高效。通常,您是否有一个经验法则来知道何时使用.html()和何时使用.text()?$.html()提供实体下面的整个html代码,$.text()“获取匹配元素集中每个元素的组合文本内容,包括它们的子代。”->但不是html标记。因此,如果您想保留HTML标记,请使用HTML,如果您只希望使用文本,请使用文本。