JavaScript正则表达式当字母是某些特殊单词的开始/结束/中间时,如何排除字母替换?
我想将以下文本中的JavaScript正则表达式当字母是某些特殊单词的开始/结束/中间时,如何排除字母替换?,javascript,regex,Javascript,Regex,我想将以下文本中的M替换为April 示例文本: dddd-yy aM5可和MM/56 MMM 预期结果: dddd yy a四月五月五日火星总和毫米56毫米四月 我真的想忽略在时重新植入: M是May和Mars M介于一些M之间,例如:MMMM或MM或MMM M是SUM 我尝试了以下代码,但它不排除替换中的特殊单词: text.replace(/[^May|Mars|MMMM|MM|MMM|SUM]M/g,"April") // Incorrect result>>
M
替换为April
示例文本:
dddd-yy aM5可和MM/56 MMM
预期结果:
dddd yy a四月五月五日火星总和毫米56毫米四月
我真的想忽略在时重新植入:
是M
和May
Mars
介于一些M
之间,例如:M
或MMMM
或MM
MMM
是M
SUM
我尝试了以下代码,但它不排除替换中的特殊单词:
text.replace(/[^May|Mars|MMMM|MM|MMM|SUM]M/g,"April")
// Incorrect result>> dddd yy aM5AprilayAprilay SUMAprilMMM 56AprilMApril
一个简单的方法是首先匹配所有不需要的部件:
var text='dddddd-yy-aM5可能和MMMM-56 MM-M';
console.log(text.replace(/\bM(?:a(?:y | rs)| M+)| SUM |(M)/g,函数(匹配,p1){
返回p1?'April':匹配;
}));代码>一个简单的方法是首先匹配所有不需要的部分:
var text='dddddd-yy-aM5可能和MMMM-56 MM-M';
console.log(text.replace(/\bM(?:a(?:y | rs)| M+)| SUM |(M)/g,函数(匹配,p1){
返回p1?'April':匹配;
}));
您需要阅读一篇教程,其中阐述了regexp中[]
的含义。它与排除这样的单词无关,你想做的事情需要一个负面的查找,但是Javascript没有这个功能。阅读解决方法。您需要阅读一篇教程,其中阐述了在regexp中[]
的含义。它与排除这样的单词无关,你想做的事情需要一个负面的查找,但是Javascript没有这个功能。阅读了解解决方法。