给定一个字符串,我想从符号之一中删除所有的字符串.
,?
和:
(因此输出字符串既不包含符号也不包含其后面的内容)并且我想用下划线替换所有空格。
我正在尝试下一个代码,但它不起作用。
// Online Javascript Editor for free
// Write, Edit and Run your Javascript code using JS Online Compiler
var str = "Some text .$0 oaisy9";
function replacer(match, p1, p2, offset, string) {
var str2 = string.replace(p2, '')
return str2.replace(p1, '_');
}
console.log(str.replace(new RegExp("(\s+)|([:?.].*$)","g"), replacer));
我得到了Some text Some text
我期望的结果Some_text_
。
我该如何定义replacer
或者修改RegExp
?
谢谢!
我认为您的 regExp 是正确的,但需要更新替换功能。
您的 regExp 有两个组 - (\s+)和([:?.].*$),分别更新了第一个
replacer
函数参数p1
和p2
第二个函数参数。如果
p1
匹配则返回空字符串,如果p2
匹配则返回下划线,否则返回原始匹配字符串。这样你就能得到你预期的结果。
您可以
replacer
像这样简化函数:replace
函数中有 2 次调用:replace
根据参数中提供的正则表达式删除文本rem
replace
将参数匹配的正则表达式替换srch
为repl