2016-10-13 2 views
0

У меня есть требование удалить все символы, которые не соответствуют заданному выражению регулярных выражений. Я знаю, что мы можем инвертировать регулярное выражение с помощью ^. Но в моем случае выражение регулярного выражения изменяется для каждого входа. Я пытаюсь достичь общего решения. Есть ли способ, мы можем инвертировать любое динамическое выражение регулярного выражения? или любой другой вариант удаления несоответствующих символов?Удалить фрахтователей, которые не соответствуют динамическому регулярному выражению

Следующий фрагмент дает представление о том, чего я пытаюсь достичь.

$(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])'/>

+0

Просьба привести пример. –

+0

Вы что-нибудь пробовали? разместите свой код. Что именно вы хотите? –

+0

@torazaburo - добавлен пример кода –

ответ

0

Это то, что вы ищете? How to negate the whole regex?

Например, если вы искали:

[abc]{3} 

Какой будет соответствовать cab но не dad, очевидно, вы не можете просто сказать:

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

Так что не будет соответствовать cab или dad ,

Вместо этого вы могли бы сделать что-то вроде этого:

^(?![abc]{3}) 

Пример: https://regex101.com/r/CvvPt0/2 для захвата не (мой пример).
Пример 2: https://regex101.com/r/CvvPt0/3 для захвата 3 символов.

Обратите внимание, что я не знаю, как вы его реализуете, но я могу немного изменить его, если вы поделитесь с нами.

Смежные вопросы