2016-05-09 4 views
0

Я использую onclick="window.location.href" как часть ссылки mailto, и я хотел знать, есть ли способ ограничить заголовок документа определенной длиной. Более конкретно, наши названия табуляции имеют |, и я хотел бы завершить строку темы в начале |. Вот код, который я использую.shorten encodeURIComponent (document.title)

<a style="color:#b9b9b9" href="mailto:?subject=&body=:%20http%3A%2F%2Fwww.taconic.com" title="Share this page" onclick="window.location.href='mailto:?subject=Check out this page:%20' + encodeURIComponent(document.title) + '&body=' + encodeURIComponent(document.URL); return false;"><i class="fa fa-envelope"></i></a> 

ответ

0

Более конкретно, наши вкладки названия имеют | и я хотел бы закончить тему в первом |.

Заменить document.title следующим:

document.title.replace(/^([^|]+)\|.*$/, '$1') 

В коде выше мы используем String.prototype.replace. Первым аргументом является регулярное выражение, где

  • первый символ ^ обозначает начало строки;
  • [^|] - это набор всех символов, кроме символа |;
  • \| является символом | с экранированным обратным слэшем, отличным от синтаксиса выражения «ИЛИ»;
  • .* означает любой символ (точка), повторяющийся ноль или более (звезда);
  • $ знак обозначает конец строки.

Второй аргумент - это строка замены, где '$1' указывает на первую группу в регулярном выражении (круглые скобки).

Иными словами, код извлекает все символы с начала document.title до символа |.

Вы можете сделать строку еще короче с String.prototype.substr, например:

document.title.replace(/^([^|]+)\|.*$/, '$1').substr(0, 20) 

substr Метод в коде выше вычитает 20 символов с начала результата, возвращаемого методом replace. We chainsubstr call, потому что метод replace возвращает String.

+0

PERFECT! Все то, что вы написали, имело смысл - спасибо! Я не уверен, что я бы все получил там, но я получил его сейчас, и это все, что имеет значение. – timrosenthal