我正在使用一个在对象上指定 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/

10-12 03:31