Javascript 正则表达式:匹配字符串中所有单词的模式

Javascript 正则表达式:匹配字符串中所有单词的模式,javascript,regex,Javascript,Regex,我有一个正则表达式模式,它只匹配字符串的第一个字前面(a、b、c或I)的前导字符:/^\s*[^abci]+(?=\w)/I,这样: "sanity".replace(/^\s*[^abi]+(?=\w)/i, (pattern) => 'v'); // "vanity" "sanity is a rice".replace(newRegex, (pattern) => 'v'); 如何定义regexnewRegex,使其匹配字符串中每个单词的前导字符,以便: "sanit

我有一个正则表达式模式,它只匹配字符串的第一个字前面(a、b、c或I)的前导字符:
/^\s*[^abci]+(?=\w)/I
,这样:

"sanity".replace(/^\s*[^abi]+(?=\w)/i, (pattern) => 'v');
  // "vanity"
 "sanity is a rice".replace(newRegex, (pattern) => 'v');
如何定义regex
newRegex
,使其匹配字符串中每个单词的前导字符,以便:

"sanity".replace(/^\s*[^abi]+(?=\w)/i, (pattern) => 'v');
  // "vanity"
 "sanity is a rice".replace(newRegex, (pattern) => 'v');

输出:vanity是一个虎钳

您也可以尝试使用
split()
map()
删除第一个字符并获得所需的输出:

函数replaceChar(str){
var matchChar=['a','b','c','i'];
var changedar=str.split(/\s+/).map((项)=>{
if(匹配字符包括(项目字符(1))){
返回“v”+项目子项(1,项目长度);
}
退货项目;
});
返回changedar.join(“”);
}
var str=‘理智是大米’;
console.log(replaceChar(str));
str='这是一只老鼠';

console.log(replaceChar(str))
在我看来,除了单词开头的
a
b
i
之外,您似乎还想替换任何单词char

你可以用

.replace(/\b[^\Wabi]/gi, 'v')

  • \b
    -单词边界
  • [^\Wabi]
    -一个与非单词字符以外的任何字符匹配的否定字符类(因此,除此类中存在的字符外,所有单词字符都匹配)、
    a
    b
    i
将添加全局修饰符
g
,以便匹配所有引用

JS演示:

console.log(
“理智是大米”。替换(/\b[^\Wabi]/gi,“v”)

);
尝试
/…/g
=全局标志以确保所有可能的匹配,而不仅仅是第一个匹配。另一个类似的问题是“替换为正则表达式”,为什么不使用它?@AkhilAravind您应该阅读我所说的
您也可以尝试
?注意,
也在那里
?这是一个建议的答案。