С прошлой пары дней я пытался решить эту проблему, так как у меня есть сборка строк, которая содержит множество тегов привязки. Я хочу выбрать те привязные теги, которые попадают под конкретный раздел комментариев, теперь, что я сделал, я сломал всю строку коллекции от "\n". И у меня есть коллекция массивов, и я читаю массив и выбираю теги привязки, он работает плавно, но для некоторой коллекции строк создается такая проблема, как я обнаружил, что некоторые якорные теги имеют пробелы и разрывы строк внутри него, как показано ниже.
<a target="_blank" href="http://www.home.test.com/test/redirector.jspx?
action=ref&cname=test_EDITORIAL&ckey =2421515&cc=US&lc=eng&cmpid=MA43304BL"
style="font-weight:bold;text-decoration:none;color:
#0085d5">application note</a>
поскольку я сломал всю коллекцию строк "\n", поэтому вышеупомянутый тег привязки теперь входит в два отдельных массива, поэтому он не находит закрывающий тег привязки. Я хочу сделать этот якорный тэг, как без пробелов и разрывов строк внутри него, как показано ниже...
<a target="_blank" href="http://www.home.test.com/test/redirector.jspx?
action=ref&cname=test_EDITORIAL&ckey=2421515&cc=US&lc=eng&cmpid=MA43304BL"
style="font-weight:bold;text-decoration:none;color:#0085d5">application note</a>
Есть ли способ удалить пробелы и разрывы строк внутри тега привязки и снова добавить его в коллекцию строк, чтобы я мог читать привязывающие теги и подбирать их. Вы не можете полагаться на родительские или дочерние элементы как свою коллекцию строк,
Пытаться
$("a").each(function (i, el) {
var r = /\s+|\r+|\n+|\t+/g;
$(el).eq(i).attr({
"href": $(el).attr("href").replace(r, ""),
"style": $(el).attr("style").replace(r, "")
});
});
попробуйте .replace(/^\s+|\s+$/g, '');
строку с .replace(/^\s+|\s+$/g, '');
Попробуйте использовать это:
var value = $("a").attr('href');
var strip = value.replace(/ /g, '');
$( "a" ).attr( "href", strip );
Вот пример JSFIDDLE.
Попробуйте выполнить цикл и зафиксировать строку в целом:
var inside = 0
for(var i = 0; i < string.length; i++){
if(string.charAt(i) == '<' || (string.charAt(i) == '"' && inside != 2)) inside++;
else if(string.charAt(i) == '>' || (string.charAt(i) == '"' && inside == 2)) inside--;
if((string.charAt(i) == '\n' || string.charAt(i) == ' ') && inside == 2){
string = string.substr(0, i) + string.substr(i + 1);
i--;
}
}