Javascript切片符号的字符串

时间:2016-05-30 09:53:21

标签: javascript jquery

如何从这个HTML代码中获取

<a href="www.realy-long-link.com">Link<a>

Href值看起来像这样 - Realy Long Link并将其附加到正文中。

这就是我现在所做的。

$("a").hide();
$("body").append($("a").attr("href"));

目标是:

  • 在开头删除 www。,在结尾处删除 .com
  • 符号 - 替换为空格。
  • 使用每个第一个字符

您可以编辑我的codepen http://codepen.io/anon/pen/YWzJXM?editors=1010

1 个答案:

答案 0 :(得分:1)

使用 replace() 方法

var a = document.getElementsByTagName('a');
a[0].style.display = 'none';
document.body.innerHTML += a[0].getAttribute('href')
  // remove www. and .com
  .replace(/^www\.|\.com$/g, '')
  // convert first letter to upper case
  .replace(/\b\w/g, function(m) {
    return m.toUpperCase()
  })
  // replace - with space
  .replace(/-/g, ' ')
<a href="www.realy-long-link.com">Link<a>

<小时/>  虽然你可以在没有任何正则表达式

的情况下完成

var a = document.getElementsByTagName('a');
a[0].style.display = 'none';
document.body.innerHTML += a[0].getAttribute('href')
  // split based on `'`
  .split('.')
  // remove `www` and  `com` from array
  .slice(1, -1)
  // join again
  .join('.')
  // split based on `-`
  .split('-')
  // capitalize first letter
  .map(function(v) {
    return v.charAt(0).toUpperCase() + v.slice(1);
  })
  // join by space
  .join(' ')
<a href="www.realy-long-link.com">Link<a>

UPDATE:具有相同代码的JQuery解决方案

$('body').append($('a').hide().attr('href').replace(/^www\.|\.com$/g, '').replace(/\b\w/g, function(m) {
  return m.toUpperCase();
}).replace(/-/g, ' '));

//or
/*

$('body').append($('a').hide().attr('href').split('.').slice(1, -1).join('.').split('-').map(function(v) {
  return v.charAt(0).toUpperCase() + v.slice(1);
}).join(' '));

*/
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="www.realy-long-link.com">Link<a>