如何使用JavaScript的slice方法提取字符串的首尾字母?

3

如何使用JavaScript slice 提取字符串的第一个和最后一个字母?

例如:"Hello World"

我需要得到结果为"dH"

下面是我的jsfiddle链接:

http://jsfiddle.net/vSAs8/


2
这里用 str[str.length-1] + str[0] 不就够了吗? - Sirko
s.substring(s.length-1)+s.substring(0,1); - Prasanth
4个回答

9
以下是最干净的解决方案:
var output = input.slice(-1)+input[0];

如果你需要更多的分片,还有其他选项。
var output = input.slice(-1)+input.slice(0,1);

这里提供了一些有趣但不太高效的替代解决方案:

var output = input.replace(/^(.).*(.)$/,'$2$1');

或者

var output = input.match(/^.|.$/g).reverse().join('');

有一步解决方案吗? - Arun Bertil
“1步”是什么意思?input.slice(-1)+input[0]是一个表达式,非常快速且可能是最短的之一。 - Denys Séguret
一个小注意点:在 ECMAScript 5 之前,通过数字属性访问字符串字符是非标准的。在实践中,它在 IE <= 7 中不受支持。因此,input.slice(-1)+input.charAt(0) 更安全。 - Tim Down
@TimDown IE9已经不再被Google Mail支持。如果今天还要支持IE7,那么我们所做的很多事情都将受到限制,这是不值得尝试的。 - Denys Séguret
这完全取决于上下文。对于许多Web开发人员来说,现实情况是IE 7仍在使用中(例如在一些大型企业和学校),他们必须处理它。我同意它正在变得不那么重要,但在这种情况下,为少数必须处理IE 7的人(包括我不幸地)避免潜在问题并不困难。 - Tim Down
可怜的你。我猜你在使用canvas、webrtc或websockets时并没有太多乐趣... - Denys Séguret

2

Substr同样有效:

alert(test.substr(-1,1) + test.substr(0,1));

1
a.charAt(a.length-1) + a.charAt(0) 

0
var str = " Virat Kohali " 
var get_string_label = function(str){ 
  str = str.split(" "); 
  str = str.filter(res=>res.length>0); 
  str = str.map(function(res){ 
    return res[0].toUpperCase(); 
  }); 
  str = str.join(""); 
  return str; 
}; 
console.log(get_string_label(str));

str.split(" "); 方法将字符串对象按照空格分隔成一个字符串数组,其中它会在字符串中查找空格。

然后 str.filter(res=>res.length>0) 将过滤掉长度为零的字符串(对于字符串“virat kohali”,您将得到一个空的子字符串)之后,使用map函数可以获取您的第一个字母。


请翻译以下有关编程的内容从英语到中文。只返回翻译后的文本:使用格式选项并解释您的答案。不要只写代码。 - Harsh Patel
1
谢谢@Harsh的建议。请查看已编辑的代码。 - Dharmendra Kumar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接