Regex 正则表达式仅检查3个字符
我有这个正则表达式,规则是用户只能输入3个字符,并且必须是大写 这是我的正则表达式,但它不起作用Regex 正则表达式仅检查3个字符,regex,Regex,我有这个正则表达式,规则是用户只能输入3个字符,并且必须是大写 这是我的正则表达式,但它不起作用 '^([A-Z\s]+){2}' 你能告诉我我的配方有什么问题吗?我只想为3个字符设置一个规则,所有字符都必须是大写。试试这个:3个字符应该可以: /^[A-Z]{3}/ 希望这是你期待的答案 /^[A-Z]{3}$/ {3}是匹配限制和最大计数的技巧。这是原始正则表达式 ^:行的开头 团体 [A-Z\s]:大写字母或空格 +:前面的1个或多个字符(大写字母或空格) {2}:必须有前一组
'^([A-Z\s]+){2}'
你能告诉我我的配方有什么问题吗?我只想为3个字符设置一个规则,所有字符都必须是大写。试试这个:3个字符应该可以:
/^[A-Z]{3}/
希望这是你期待的答案
/^[A-Z]{3}$/
{3}
是匹配限制和最大计数的技巧。这是原始正则表达式
:行的开头^
- 团体
:大写字母或空格[A-Z\s]
:前面的1个或多个字符(大写字母或空格)+
:必须有前一组的2个{2}
我想你想要的是三个大写字母,不考虑空格
^\s*([A-Z]\s*){3}$
从行首开始,任意数量的空格,一个组的三个实例,然后是行尾
该组必须包含一个大写字母,后跟任意数量的空格。运算符表示“一个或多个上一个正则表达式”。确切地说是“前三个正则表达式”。。。说吧
^[A-Z\s]{3}$
我还添加了尾随的$
,否则您只能检查至少有三个(在许多正则表达式实现中)
如果不想包含空格,请根据Jeffery Thomas的答案取出
\s
,下面是一个工作示例:
var input=document.getElementById('fname'))
var div=document.getElementById('divID');
函数checkInput(){
常量正则表达式=/^\s*([A-Z]\s*){3}$/
div.innerHTML=“”;
让isValid=regex.test(input.value);
如果(有效){
div.innerHTML=“有效”;
}否则{
div.innerHTML=“无效”;
}
}
是否要将$
添加到末尾?否则ABCD将匹配到为什么您认为这应该有效?{2}
不会添加到上一个实体,它会显示上一个实体的数量。您建议的正则表达式包含与空格匹配的\s
。您的要求中没有提到空格:“只有3个字符,必须全部大写。”请具体说明应如何处理空格(以及其他非字母字符,如有必要),以防止答案受到不同的解释。注意:3个空格与此模式匹配。不需要资金。