如题,我想去掉第一个问号后面的所有内容,应该怎么写呢,能解释一下最好
let str = 'abc?defg?hijk?';
console.log(str.replace(/\?.*/,'?')); //将匹配的第一个 ? 和后面部分替换成 ?
粗暴版把第一个问号后面全部清除
'aabbccdd?eeff?gghhkk'.replace(/\?.*/,'?')
//输出aabbccdd?
//解读: 转义匹配? .*是任意数量任意字符
温柔版只把第一个问号后面的清除 第二或第三以及更多的问号保留
'aabbccdd?eeff'.replace(/\?([^\?]*)\??/,'?')
//输出aabbccdd?
'aabbccdd?eeff?gghhkk'.replace(/\?([^\?]*)\??/,'?')
//输出aabbccdd?gghhkk
//解读: 转义匹配? 中间是任意非问号的字符 后面转义匹配? 后面跟着的问号是表示有或无都可以