首页 > 解决方案 > 如何使用 Javascript 将缩写字母转换为完整单词

问题描述

我有一组测试场景,无论输入字符串是什么,其输出结果都应该相同。

输入:场景:

Test 2019
T2019

输出:

Test 2019

同样,还有其他场景,例如:

W2019 // output shd be Website
H2020 // shd result in Home2020
Su2000 // shd result in Summer2000

到目前为止,我有:

function getValue(value) {
    var letter = value.replace(/[^a-zA-Z]/g, '');
    var number = value.replace(/[^0-9]/g, '');
return (
  <div style="text-transform: capitalize">{letter}</div>
 <div>{number}</div>
)

}

console.log(getValue("2000 Website"));

我能够将第一个字母大写,但不确定在上述示例中将缩写字母转换为完整单词的最佳方法。

任何想法?

标签: javascript

解决方案


如果您只有四个选项来匹配完整的单词,后跟一个数字,我会使用简单的Map,或者您甚至可以使用纯 JS 对象将您的缩写与字典单词映射。

let input = "S2019";

const MAPPING = new Map();
MAPPING.set("S", "Spring");
MAPPING.set("Su", "Summer");
MAPPING.set("F", "Fall");
MAPPING.set("W", "Winter");

function getValue(value) {
    
    let regex = /([a-z]+)(\d+)/gi;
    let result = regex.exec(value);
    if(MAPPING.has(result[1])) return `${MAPPING.get(result[1])} ${result[2]}`
    else return value;
}

console.log(getValue(input));


推荐阅读