我正在使用一个在对象上指定 RegEx 的库。我需要在该正则表达式中添加一些字符。有没有更简单的方法来做到这一点?
我无法控制 this.stripCharsRegex
。
// this.stripCharsRegex = /[^0123456789.-]/gi
var regexChars = this.stripCharsRegex.toString();
regexChars = regexChars.substr(3,regex.length-7); // remove '/[^' and ']/gi'
var regex = new RegExp('[^£$€'+regexChars+']','gi'); // (e.g.)
this.stripCharsRegex = regex;
最佳答案
我认为如果你使用它的 source 属性,你应该能够将新的 regexp 规则与旧的 RegExp 对象结合起来。试试这个:
this.stripCharsRegex = new RegExp('(?=[^£$€])' + this.stripCharsRegex.source, 'gi');
检查下面的测试片段。
var stripCharsRegex = new RegExp('[^0123456789.-]', 'gi');
alert( 'Total: $123 test - £80&dd'.replace(stripCharsRegex, '') );
// extend regexp by creating new RegExp object
stripCharsRegex = new RegExp('(?=[^£$€])' + stripCharsRegex.source, 'gi');
alert( 'Total: $123 test - £80&dd'.replace(stripCharsRegex, '') );
关于Javascript - 添加到正则表达式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27136133/