Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Копировать текст (https://javascript.ru/forum/jquery/55448-kopirovat-tekst.html)

рони 29.04.2015 15:08

Aleksanderj,
var spanText = $.trim($('span', a).text()).replace(/([()])/g, "\\$1");


полный список что необходимо экранировать тут
экранирование-специальных-символов

добавлять если нужно replace(/([()сюда])/

Aleksanderj 29.04.2015 15:35

Почему-то они переносятся всё равно
<span>Запись (с диска)</span>
 <br>
 Октябрь [первые числа]
 </a>


$(".block").each(function(indx, el){
  var a = $(".name_zapis", el);
  var text = $.trim(a.text());
  var spanText = $.trim($('span', a).text()).replace(/([()])/g, "\\$1");
  var reg = new RegExp("^("+spanText+")([\\s\\S]+)$","mig");
  text = text.replace(reg, function(a,b,c) {
  return  $.trim(c) + " - " + b 
})

рони 29.04.2015 15:37

Цитата:

Сообщение от Aleksanderj
Почему-то они переносятся всё равно

что переносится?

Aleksanderj 29.04.2015 15:42

Цитата:

Сообщение от рони (Сообщение 368700)
что переносится?

скобки () и [] из
<span>Запись (с диска)</span>
 <br>
 Октябрь [первые числа]
 </a>

в
<a class="btn btn-mini" alt="Скачать" download="Запись (с диска) - Октябрь [первые числа]" title="Скачать" href="http://site.ru/123456.wav">СКАЧАТЬ</a>

А если есть точк в тексте, то они мешают правильному сохранению формата.

рони 29.04.2015 15:57

Aleksanderj,
Цитата:

Сообщение от рони
что переносится?

какая
Цитата:

Сообщение от Aleksanderj
точк в тексте

<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
 $(function(){
 $(".block").each(function(indx, el){
  var a = $(".name_zapis", el);
  var text = $.trim(a.text());
  var rg = /([(\].[)])/mig ;
  var spanText = $.trim($('span', a).text()).replace(rg, "\\$1");
  var reg = new RegExp("^("+spanText+")([\\s\\S]+)$","mig");
  text = text.replace(reg, function(a,b,c) {
  return  $.trim(c) + " - " +  b
}).replace(rg, "")
     $("<a/>",{
  "text" : "СКАЧАТЬ",
  "href" : "http://site.ru/123456.wav",
  "class": "btn btn-mini",
  "alt": "Скачать",
  "download": text,
  "title": "Скачать"}).appendTo($('.control', el));
});
 alert($("body").html())

});
  </script>
</head>

<body>
<div class="block">
 <a class="name_zapis" href="#">
   <span>Запись(2)</span>
 <br>
 Октябрь [первые числа]
 </a>
 <div class="control">
 </div>
</div>
<div class="block">
 <a class="name_zapis" href="#">
   <span>Абра-кадабра ................. 2015</span>
 <br>
 Май Мир Мур
 </a>
 <div class="control">
 </div>
</div>
</body>

</html>

рони 29.04.2015 16:01

Aleksanderj,
читайте про RegExp про DOM и комбинируйте как хотите.

Aleksanderj 29.04.2015 16:08

<a title="Скачать" download="Октябрь [первые числа] - Запись(2)" alt="Скачать" class="btn btn-mini" href="http://site.ru/123456.wav">СКАЧАТЬ</a></div>

Октябрь [первые числа] - Запись(2) - как убрать в этой записи квадратные скобки и круглые скобки? а если есть и точки, то их тоже убрать.

рони 29.04.2015 17:16

Aleksanderj,
смотрите пост 15.

Aleksanderj 29.04.2015 17:58

рони, :) вы замечательный человек, большое вам спасибо за помощь и за то, что терпели меня с моими вопросами!:)

nondeterminism 29.04.2015 19:15

Цитата:

Сообщение от Aleksanderj
Октябрь [первые числа] - Запись(2) - как убрать в этой записи квадратные скобки и круглые скобки? а если есть и точки, то их тоже убрать.

Тред не читал, поэтому, может ответ не в кассу:), но возможно это
alert(
'<a title="Скачать" ... download="Октябрь [первые числа] - Запись(2)" alt="Скачать" class="btn btn-mini" [foo] () ... href="http://site.ru/123456.wav">СКАЧАТЬ</a></div>'
 .replace(/[\s\S]+(?=alt=)/g, function(substr){
   return substr.replace(/[\[\]().]/g, "")
 })
)


Часовой пояс GMT +3, время: 14:45.