我想使用regex验证输入字段中重复字符的单词
I want to validate words for repetitive characters in a input field using regex
问题是当用户在输入字段中输入aaaaaa
或xyzzz
等时,我想检查用户是否不能重复输入3个类似的字母。例如,aabb是有效的,但aabbb
应该是无效的。我想用正则表达式来做。有办法做到这一点吗。。?
您可以在负前瞻((?!…)
)中使用反向引用('1
),如下所示:
/^(?:('w)(?!'1'1))+$/
此模式将匹配由"word"字符(拉丁字母、十进制数字或下划线)组成的任何字符串,但前提是该字符串不包含同一字符的连续三个副本。
要使用HTML5pattern
属性,应该是:
<input type="text" pattern="^(?:('w)(?!'1'1))+$">
演示
您也可以在JavaScript 中尝试这种模式
('w)'1{2,}
您也可以在jsfiddle上测试
JavaScript代码如下:
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
的文本字段。此外,使用正则表达式模式中的{2,}
,您可以控制重复字符的长度。例如,如果将2
更改为4
,则模式将匹配5个或更多重复字符。
相关文章:
- 用于匹配不带字符的单词的正则表达式
- 如何使用Javascript在给定的句子中找到大写单词并在其前面添加一个字符
- 如何将单词(包括单词)与连字符匹配
- 替换与单词'匹配的文本字符;购物车'替换为img图标
- 在字符串列表中搜索任何出现的单词,如果单词的第一个字符匹配,则高亮匹配单词.Javascript正则表达式
- 获取特殊字符后没有单词的句子
- 将组成单词的字符添加到数组的开头
- 如何防止亚洲字符通过单词换行
- 跳过用户输入的文本字符串中的特殊字符,并在 Javascript 中的每个单词后添加连字符
- localeCompare 显示使用前导变音字符对单词进行排序时不一致的行为
- regex,用于修改单词末尾特定大小写的字符
- Javascript RegEx在字符后匹配单词
- 用unicode字符提取字符串中的单词
- 匹配可能具有特殊字符的单词
- 从javascript中的表达式中提取单词或字符
- 编写函数,通过1个字符的JavaScript匹配单词
- 替换字符串中的单词和字符
- 正则表达式,用于从拉丁文中拆分带有重音字符的单词
- 我怎样才能通过使用字符位置来获得单词
- 匹配连字符单词的JavaScript正则表达式