我有一组测试方案,无论输入字符串是什么,其输出结果都应该相同。
输入: 情况:
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"));
我能够将首字母大写,但是不确定在上述示例中将缩写字母转换为完整单词的最佳方法。
有什么主意吗?
答案 0 :(得分:0)
如果,您只有四个选项来匹配全字,然后是数字,那么我会使用简单的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));