缩短encodeURIComponent(document.title)

时间:2016-05-09 15:58:39

标签: javascript onclick window.location

我正在使用onclick="window.location.href"作为mailto链接的一部分,我想知道是否有办法将文档标题限制为特定长度。更具体地说,我们的标题标题为|,我想在第一个|结束主题行。这是我正在使用的代码。

<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>

1 个答案:

答案 0 :(得分:0)

  

更具体地说,我们的标题标题有|我想在第一个|。

结束主题

document.title替换为以下内容:

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

在上面的代码中,我们使用String.prototype.replace。第一个参数是正则表达式,其中

  • 第一个^字符代表行的开头;
  • [^|]是一组所有字符,|字符除外;
  • \|是使用反斜杠转义的|字符,与“OR”表达式语法不同;
  • .*表示任何重复零次或多次的字符(点);
  • $字符代表该行的结尾。

第二个参数是替换字符串,其中'$1'指向正则表达式中的第一个组(括号)。

换句话说,代码会从document.title的开头提取所有字符,直到|字符。

您可以使用String.prototype.substr缩短字符串,例如:

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

上面代码中的substr方法从replace方法返回的结果开头减去20个字符。我们 substr来电,因为replace方法会返回String