Javascript - 添加到正则表达式
Javascript - Add to a 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;
我认为如果您
使用其源属性,您应该能够将新的正则表达式规则与旧的正则表达式对象相结合。试试这个:
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, '') );
这是将字符类添加到任何正则表达式的通用方法
function addCharacterClass(regex, string) {
var flags = (regex.global ? "g" : "" ) + (regex.ignoreCase ? "i" : "" )
return new RegExp(regex.source + "|([" + string + "])", flags);
}
document.getElementById('check').addEventListener('click', function(){
var originalRegex = new RegExp(document.getElementById('regex').value);
var additionalChars = document.getElementById('chars').value;
var testString = document.getElementById('test-string').value;
alert("Does regex match? " + addCharacterClass(originalRegex, additionalChars).test(testString) );
});
Original Regex: <input id="regex" value="[^0123456789.-]" /> <br />
Additional Characters: <input id="chars" value="£$€"/> <br />
Test string <input id="test-string" value="$123456"> <br />
<button id="check">Check</button>
相关文章:
- 正则表达式,用于在 JavaScript 中为电话号码添加短划线
- 在正则表达式中添加 (?i) 会导致 javascript 中出现错误“无效的正则表达式组”
- 使用 JS 正则表达式添加到字符串(作为数字)
- 如何添加防止正则表达式解析字符串的某些部分
- 添加一条规则以将前导0删除到现有正则表达式中
- 向正则表达式添加特殊字符
- 如何根据一定的标准在angularjs中使用正则表达式添加密码验证
- 如何在正则表达式中添加JavaScript中匹配的一系列字符的反勾号
- 是否可以在正则表达式中向现有字符串添加新字符串
- 如何向正则表达式添加特殊符号以允许在文本字段中使用
- 在 JavaScript 中使用正则表达式在单词的任一侧添加空格
- 添加另一个变量后,正则表达式替换不起作用
- 要添加到表达式的正则表达式 JavaScript
- 将 DOT (.) 添加到正则表达式
- 正则表达式:通过展望添加负面案例
- JS 中的正则表达式 - 添加要替换的匹配项
- 我想添加满足我担忧的javascript正则表达式
- 如何在正则表达式中添加空格
- 如何为正则表达式添加条件
- 我需要给这个正则表达式添加数字