我想用不同的东西替换字符串的多个部分。我有一系列包含这些需要更改的字符串的URL,它们都遵循相同的模式。
例如
“西班牙语入门课程”
“意大利语入门课程”
“西班牙语-意大利语入门课程”
我只希望结果是语言例如西班牙人意大利人西班牙人
我已经尝试过将其作为测试,但它会返回“西班牙语未定义未定义”
const pageName = 'spanish-beginners-course'
const chars = { '-beginners': '', '-course': '', '-': ' ' }
const language = pageName.replace(/-|beginners|course/g, m => chars[m])
最佳答案
发生这种情况是因为您的REGEX匹配项找到了beginners
,但是在您的chars
对象中没有名为beginners
的键-它称为-beginners
。 course
/ -course
相同。
const pageName = 'spanish-beginners-course'
const chars = { '-beginners': '', '-course': '', '-': ' ' }
const language = pageName.replace(/-|beginners|course/g, m => chars[m])
无论如何,您的对象都是不必要的,正则表达式也是如此(如@Alastair所指出的),因为您要替换静态的,不变的子字符串。
const language = pageName.replace('-beginners-course', '');