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