JavaScript:在字符串中取每个单词的前三个字符,并在每个单词后面加上“_”

时间:2016-12-17 19:47:45

标签: javascript

  

我想要实现的是取一个字符串:

var string = "Hello there my friend";
  

并返回格式化字符串,如下所示:

"HEL_THE_MY_FRI"

所以我试图在字符串中取每个单词的前三个字符,并在每个单词后添加下划线。大写很容易:) .toUpperCase()

4 个答案:

答案 0 :(得分:1)

由于您没有为目前为止所尝试的内容提供任何代码,因此您采取的步骤是:

  • 在空格上分割字符串
  • 循环你的数组
  • 从每个单词中获取3个字符长的子字符串
  • 大写子串
  • 将其附加到新字符串
  • 如果它不是数组中的最后一个单词,则添加下划线

var phrase = 'this is my string';
var words = phrase.split(' ');

var result = '';
for (var i = 0; i < words.length; i++) {
  var word = words[i];
  result += word.substring(0, 3).toUpperCase();
  
  if (i < words.length - 1) {
    result += '_';
  }
}

console.log(result);

答案 1 :(得分:1)

您可以使用replace

var string = "Hello there my friend";

var result = string.toUpperCase().replace(/\b(\S{1,3})\S*/g, '$1').replace(/ /g, '_');
console.log(result);

答案 2 :(得分:0)

console.log("Hello there my friend".split(" ").map((a)=>a.substring(0, 3)).join("_").toUpperCase());

答案 3 :(得分:0)

&#34;使用String.replace()String.toUpperCase()String.slice()函数的单行&#34; 解决方案:

&#13;
&#13;
var string = "Hello there my friend",
    replaced = string.replace(/\b(\w{1,3})(\w+\s?|\s)/g, '$1_').toUpperCase().slice(0,-1);
    
console.log(replaced);
&#13;
&#13;
&#13;