Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我想使用regex验证输入字段中重复字符的单词_Javascript_Regex_Html - Fatal编程技术网

Javascript 我想使用regex验证输入字段中重复字符的单词

Javascript 我想使用regex验证输入字段中重复字符的单词,javascript,regex,html,Javascript,Regex,Html,问题是当用户在输入字段中输入aaaaaa或xyzz等时,我想检查用户是否不能重复输入3个类似的字母。e、 g aabb有效,但aabbb应无效。我想用正则表达式来做。有办法吗?您可以在负前瞻((?!…))中使用反向引用(\1),如下所示: /^(?:(\w)(?!\1\1))+$/ jQuery(document).ready( function($) { $('#input').on( 'keyup', func

问题是当用户在输入字段中输入
aaaaaa
xyzz
等时,我想检查用户是否不能重复输入3个类似的字母。e、 g aabb有效,但
aabbb
应无效。我想用正则表达式来做。有办法吗?

您可以在负前瞻(
(?!…)
)中使用反向引用(
\1
),如下所示:

/^(?:(\w)(?!\1\1))+$/
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
                }
            }
        );
    }
);
此模式将匹配由“word”字符(拉丁字母、十进制数字或下划线)组成的任何字符串,但前提是该字符串不包含同一字符的三个连续副本

要使用HTML5
模式
属性,应该是:

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


您也可以使用JavaScript尝试这种模式

(\w)\1{2,}
您也可以在上测试它

JavaScript代码如下所示:

/^(?:(\w)(?!\1\1))+$/
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
                }
            }
        );
    }
);
其中,
$(“#input”)
选择ID为
input
的文本字段。同样,使用regex模式中的
{2,}
,您可以控制重复字符的长度。如果将示例中的
2
更改为
4
,则模式将匹配5个或更多重复字符