我想用不同的东西替换字符串的多个部分。我有一系列包含这些需要更改的字符串的URL,它们都遵循相同的模式。

例如


“西班牙语入门课程”
“意大利语入门课程”
“西班牙语-意大利语入门课程”


我只希望结果是语言例如西班牙人意大利人西班牙人

我已经尝试过将其作为测试,但它会返回“西班牙语未定义未定义”

const pageName = 'spanish-beginners-course'
const chars = { '-beginners': '', '-course': '', '-': ' ' }
const language = pageName.replace(/-|beginners|course/g, m => chars[m])

最佳答案

发生这种情况是因为您的REGEX匹配项找到了beginners,但是在您的chars对象中没有名为beginners的键-它称为-beginnerscourse / -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', '');

08-24 22:40