正则表达式在特定单词后添加破折号

我有一个字符串数组,如下所示:

const strings = ['Prepayment', 'Postpayment', 'Complete']
const addDash = (str: string) =>
  str.startsWith('Pre') || str.startsWith('Post') ? str.replace(' ', '-') : str;

我想要以下数组:

const result = strings.map(str => addDash(str))
// => ['Pre-payment', 'Post-payment', 'Complete'] // want result to equal this

谁能建议什么正则表达式可以帮助我完成这项任务?

回答

您可以使用

const addDash = (str) => str.replace(/^P(?:re|ost)B/, '$&-');

const strings = ['Prepayment', 'Postpayment', 'Complete']
const result = strings.map(str => addDash(str));
console.log(result);

^P(?:re|ost)B模式匹配

  • ^ - 字符串的开始
  • P(?:re|ost)- PrePost
  • B - 后跟一个字符字符。

$& 是对与正则表达式匹配的整个值的反向引用。

请参阅正则表达式演示。


以上是正则表达式在特定单词后添加破折号的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>