删除与动态正则表达式不匹配的租船人

时间:2016-10-13 05:40:28

标签: javascript regex

我需要删除与给定的正则表达式不匹配的所有字符。我知道我们可以使用^反转正则表达式。但在我的情况下,正则表达式因每个输入而异。我正在尝试实现通用解决方案。有什么办法,我们可以反转任何动态正则表达式吗?或删除不匹配字符的任何其他选项?

以下代码段提供了一个想法,我想要实现的目标。



$(document).ready(function(){
  $('input[check]').on('input',(function(){  
    //validate the input value with regex and remove none matching charectors
  }))
})

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input type="string" check='(\d|[a-z])'/>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

这是你正在寻找的吗? How to negate the whole regex?

例如,如果您正在寻找:

[abc]{3}

哪个匹配cab但不匹配dad,显然你不能只说:

[^abc]{3}    # Does not work!

因为那不匹配cabdad

相反,你可以这样做:

^(?![abc]{3})

示例:https://regex101.com/r/CvvPt0/2表示没有捕获(我的例子) 示例2:https://regex101.com/r/CvvPt0/3也可以捕获3个字符。

请注意,我不知道您希望如何实施它,但如果您与我们分享,我可以稍微修改一下。