let test = L.replace( '[[Hi, Fred]]', /,|\[|\]/g, '' )
// => Hi fred
如您所见,此代码会删除所有[,和]。 我怎么能传递那些要删除的字符,所以它们不是硬编码的,而是通过函数参数传递的?
答案 0 :(得分:0)
您可以使用start
转义字符,然后使用字符类删除您不想要的字符。
_.escapeRegExp
function removeChars(string, chars) {
return _.replace(string, new RegExp('[' + _.escapeRegExp(chars) + ']', 'g'), '');
}
function removeChars(string, chars) {
return _.replace(string, new RegExp('[' + _.escapeRegExp(chars) + ']', 'g'), '');
}
console.log(removeChars('[[Hi, Fred]]', ',[]'));
或使用<script src="https://cdn.jsdelivr.net/lodash/4.13.1/lodash.min.js"></script>
过滤掉黑名单中包含的字符。
_.reject
function removeChars(string, chars) {
return _.reject(string, _.partial(_.includes, chars)).join('');
}
function removeChars(string, chars) {
return _.reject(string, _.partial(_.includes, chars)).join('');
}
console.log(removeChars('[[Hi, Fred]]', ',[]'));