最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - I want to validate words for repetitive characters in a input field using regex - Stack Overflow

programmeradmin0浏览0评论

The problem is when a user enters aaaaaa or xyzzz etc. in the input field, I want to check that the user can't enter 3 similar alphabets repetitively. e.g aabb is valid, but aabbb should be invalid. I want to do it using regular expression. Is there a way to do it..?

The problem is when a user enters aaaaaa or xyzzz etc. in the input field, I want to check that the user can't enter 3 similar alphabets repetitively. e.g aabb is valid, but aabbb should be invalid. I want to do it using regular expression. Is there a way to do it..?

Share Improve this question edited Sep 25, 2014 at 7:08 Ved asked Sep 19, 2014 at 6:01 VedVed 12.1k5 gold badges45 silver badges61 bronze badges
Add a ment  | 

2 Answers 2

Reset to default 4

You can use a backreference (\1) inside a negative lookahead ((?!…)) like this:

/^(?:(\w)(?!\1\1))+$/

This pattern will match any string consisting of 'word' characters (Latin letters, decimal digits, or underscores) but only if that string doesn't contain three consecutive copies of the same character.

To use the HTML5 pattern attribute, that would be:

<input type="text" pattern="^(?:(\w)(?!\1\1))+$">

Demonstration

You also try this pattern with JavaScript

(\w)\1{2,}

and you can test it on jsfiddle too

The JavaScript code is like this:

jQuery(document).ready(
    function($)
    {
        $('#input').on(
            'keyup',
            function()
            {
                var $regex  = /(\w)\1{2,}/;
                var $string = $(this).val();

                if($regex.test($string))
                {
                    // Do stuff for repeated characters
                }
                else
                {
                    // Do stuff for not repeated characters
                }
            }
        );
    }
);

Where $('#input') selects the text field with ID input. Also with the {2,} in the regex pattern you can control to length if the repeated characters. If you change the 2 to 4 in example, the pattern will match 5 repeated characters or more.

发布评论

评论列表(0)

  1. 暂无评论