【问题标题】:Abbreviate a two word name in JavaScript在 JavaScript 中缩写两个单词的名称
【发布时间】:2020-05-06 09:56:40
【问题描述】:

我正在编写一个函数来将名称转换为首字母。这个函数返回严格地接受两个单词,它们之间有一个空格。

输出应该是两个大写字母,用点隔开。

应该是这样的:

alex cross => A.C

jaber ali => J.A

这是我的解决方案

function initialName(firstLetterFirstName, firstLetterLastName) {
    'use strict'
    let x = firstLetterFirstName.charAt(0).toUpperCase();
    let y = firstLetterLastName.charAt(0).toUpperCase();
    return x + '.' + y;
}

console.log(initialName('momin', 'riyadh'));  // M.R

我是否通过硬编码解决了这个问题,我的方法是否正确?或者会更好!

【问题讨论】:

  • Obligatory read about names。 Jean-Claud Van Damme 如何缩写?
  • 一个问题可以引入更多,但是一个解决方案!
  • @VLAZ :它甚至不接近Antoine de Saint-Exupéry
  • @YevgenGorbunkov 我以为我会很容易开始。

标签: javascript


【解决方案1】:

为此使用正则表达式:

function initialName(words) {
    'use strict'
    
    return words
        .replace(/\b(\w)\w+/g, '$1.')
        .replace(/\s/g, '')
        .replace(/\.$/, '')
        .toUpperCase();
}

console.log(initialName('momin riyadh'));  // M.R
console.log(initialName('momin riyadh ralph')); // M.R.R

【讨论】:

  • 谢谢!你会如何缩写Jean-Claud Van Damme
  • @Momin:以我的拙见,有一个 更短的 way around, 可以解决这样的输入,只需稍微修复
  • @Momin 正如@Yevgen 所说,您可以在第二次替换尝试中将/\s/g 替换为/[\s-]/g
【解决方案2】:

试试这个:

name.split(' ').map(el => el[0]).join('.').toUpperCase()

如果你有多个部分,可能是这样的:

function make(...parts) {
   return parts.map(el => el[0]).join('.').toUpperCase()
}

【讨论】:

  • 我会说split(/[\s-]/) 会更好地处理输入,例如jean-claude van damme
【解决方案3】:

它有效,但它可以写成单行:

console.log(
  ['john', 'doe']
  .map(word => `${word[0].toUpperCase()}.`).join('')
)

【讨论】:

    【解决方案4】:

    你可以试试这个

        var str = "Abdul Basit";
        var str1 = "This is a car";
        console.log(getInitials(str));
        console.log(getInitials(str1));
        
        function getInitials(str) {
          var matches = str.match(/\b(\w)/g);
          return matches.join('.').toUpperCase();
        }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-20
      • 2022-01-23
      • 1970-01-01
      • 2011-09-15
      • 1970-01-01
      • 2022-08-12
      相关资源
      最近更新 更多