假设我有一个模式/[a-z]+100/
(虽然它可以是任何模式)并且需要处理剪贴板内容以去除不属于[a-z01]
范围的字符。或者更高级,删除不适合/[a-z]+100/
模式本身的所有内容。例如:如果剪贴板有12345abc200def500100
,则处理后的内容将被拆分为abcdef100
。
是否可以自动执行此过程,以便我们可以假设任何源模式都可以反转?
答案 0 :(得分:0)
作为仅返回正则表达式匹配的字符串的一般响应,您可以编写一个简单的全局正则表达式,返回匹配的任何内容并抛弃其他任何内容。例如
var testString = '12345abc200def500100'
var testRegex = new RegExp(/[a-z01]/)
var returnString= testString.replace(new RegExp('((?:'+testRegex.source+')+)|.', 'g'), function(full, matched){
return (typeof matched != "undefined") ? matched : '';
});
console.log(returnString)
在控制台中运行时,会记录'1abc00def00100' 您应该能够使用您想要使用的任何正则表达式更改变量testRegex。例如,使用正则表达式[a-z] [0-9]返回'c2f5'