javascript - 如何使用 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"));
我能够将第一个字母大写,但不确定在上述示例中将缩写字母转换为完整单词的最佳方法。
任何想法?
解决方案
如果您只有四个选项来匹配完整的单词,后跟一个数字,我会使用简单的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));
推荐阅读
- r - 函数内的 R 全局变量引用/定义
- django - 如何加入 2 个属性以在 Django 模型实例中创建名称?
- rxjs - 订阅 Observable 时结合 take(1) 和 defaultIfEmpty 是否安全/可以
? - reactjs - React 组件渲染两次
- c++ - 内存泄漏 C++ 线程
- django - Django Rest Framework 在 has_permission 中获取参数
- flutter - 在 Flutter 中控制抽屉的滑动速度
- html - 项目符号仅在第一个列出的 li 上,不嵌套
- r - 如何在 R 中使用向量元素逐行创建数组?
- vue.js - Ag-Grid createRangeChart 不是函数