我正在尝试使用JavaScript中的replace
方法删除<br>
,而且它的替换方式太多了。
我从一个用<br>
分隔的数据库中的链接列表开始。这通过AJAX返回给客户端。链接可能如下所示:
www.yahoo.com?d=asdadsf&s=aadsfasdf<br>www.gmail.com<br>www.twitter.com
然后我运行了replace
方法,但它删除了=
符号后的所有内容。
以下是代码:
function storeLinks() {
var links = "www.yahoo.com?d=asdadsf&s=aadsfasdf<br>www.gmail.com<br>www.twitter.com";
alert(links);
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
var text = xmlhttp.responseText;
//alert(text);
var newtext = text.replace(/<br>/g,""); //HERE PROBABLY LIES PROBLEM
//alert(newtext);
document.getElementById("links").textContent=newtext;//OR POSSIBLY HERE
}
}
//xmlhttp.open("GET",url,true);
xmlhttp.open("GET","storelinks.php?links="+links,true);
xmlhttp.send();
}
很抱歉,我无法在JSFiddle中显示它,因为它在AJAX调用中使用后端数据库,但我希望有人能够发现replace
语法中的错误,导致它消除的方式不仅仅是{ {1}}代码。
答案 0 :(得分:0)
这是你在找什么?
var x = "www.yahoo.com?d=asdadsf&s=aadsfasdf<br>www.gmail.com<br>www.twitter.com";
var y = x.split("<br>").join("").split("<br/>").join("");
答案 1 :(得分:0)
正则表达式工作得很好。你对它的使用是正确的。问题在于一些范围问题和进一步的诊断被阻止,因为您没有提供从服务器收到的数据以查看代码正在使用的内容。
function storeLinks() {
var xmlhttp;
var links = "www.yahoo.com?d=asdadsf&s=aadsfasdf<br>www.gmail.com<br>www.twitter.com";
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else {
// PLEASE STOP USING IE6, IE5!!!!
// http://mashable.com/2011/03/04/ie6-countdown/
throw new Error("IE6 is not supported!");
}
xmlhttp.onreadystatechange = function() {
var ul;
if (this.readyState === 4 && this.status === 200) {
ul = document.createElement('ul');
this.responseText.split(/<br\s*\/?>/g)
.map(function(link) {
var li = document.createElement('li');
li.textContent = link;
return li;
})
.forEach(function(liTag) {
ul.appendChild(liTag);
});
}
};
// "storelinks.php?www.yahoo.com?d=asdadsf&s=aadsfasdf<br>www.gmail.com<br>www.twitter.com=undefined"
// ^ This does not make sense!
xmlhttp.open("GET", "storelinks.php?" + links + "=" + text, true);
xmlhttp.send();
return xmlhttp;
}