JavaScript:如何计算一个反向RegExp模式来剥离与源模式匹配的字符
JavaScript: how to compute a reverse RegExp pattern for stripping characters that are matched by the source pattern?
假设我有一个模式/[a-z]+100/
(尽管它可以是任何模式),并且需要处理剪贴板内容以去除不属于[a-z01]
范围的字符。或者更高级,去掉所有不符合/[a-z]+100/
模式本身的东西。例如:如果剪贴板有12345abc200def500100
,那么处理的内容将被剥离到abcdef100
。
是否有可能自动化这个过程,这样我们就可以假设任何源模式都可以被逆转?
作为只返回与正则表达式匹配的字符串的一般响应,您可以编写一个简单的全局正则表达式,返回任何匹配的内容并丢弃其他内容。例如
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'
相关文章:
- Javascript,访问一个主要对象模块模式中的每个对象
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- 试图在引导模式内动态生成图表,得到offsetWidth错误
- 同位素库错误:未捕获错误无布局模式包装生产线8
- 在DOM中查找一个模式并替换它's的内容使用jquery
- 如何缩短MongoDB ObjectId并在Mongoose模式中使用它
- D3.js模式不适用于弧形或圆环图
- Webdriver.io pageObject模式-通过传递参数来定义元素选择器
- 模块模式和这个
- 带有let的JS/EECMAScript6私有字段的模式
- 我是否可以检测到javascript正在被卸载(作为调试模式)
- 执行动态模式弹出
- 注意:wp_enqueue_script调用不正确.在 Wordpress 调试模式下
- AngularJS ui路由器html5模式中断路由
- 包含圆括号的JavaScript Regex模式
- 显示模块模式在Knockout中设置模型的新实例
- Node.js使用Series函数(模式?)实现流控制时出现意外结果
- 使用模式格式化Number类型输入中的值
- 将特定字符串的结尾从模式的末端剥离
- JavaScript:如何计算一个反向RegExp模式来剥离与源模式匹配的字符