Javascript 正则表达式:匹配字符串中所有单词的模式
我有一个正则表达式模式,它只匹配字符串的第一个字前面(a、b、c或I)的前导字符: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
/^\s*[^abci]+(?=\w)/I
,这样:"sanity".replace(/^\s*[^abi]+(?=\w)/i, (pattern) => 'v');
// "vanity"
"sanity is a rice".replace(newRegex, (pattern) => 'v');
如何定义regexnewRegex
,使其匹配字符串中每个单词的前导字符,以便:"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您应该阅读我所说的您也可以尝试?注意,也在那里
?这是一个建议的答案。