Javascript 检查字符串中的任何位置是否包含介于1到3个字符之间的。-\uu
我正在尝试创建一个正则表达式,用于检查字符串并匹配点、破折号或下划线。我只希望它允许最多3个,否则它不应该匹配字符串 例如,如果我输入Javascript 检查字符串中的任何位置是否包含介于1到3个字符之间的。-\uu,javascript,regex,Javascript,Regex,我正在尝试创建一个正则表达式,用于检查字符串并匹配点、破折号或下划线。我只希望它允许最多3个,否则它不应该匹配字符串 例如,如果我输入qwerty-123-123-123,就可以了 如果我输入something-123_world就可以了 但是,如果我输入qwerty-123-_whatever-something,这应该不匹配 我当前的正则表达式匹配我想要的特定字符,但我似乎不知道如何最多只允许3个字符。我认为{1,3}是答案,但这似乎不起作用。我还查看了肯定查找,但不确定这是否正确/甚至无
qwerty-123-123-123
,就可以了
如果我输入something-123_world
就可以了
但是,如果我输入qwerty-123-_whatever-something
,这应该不匹配
我当前的正则表达式匹配我想要的特定字符,但我似乎不知道如何最多只允许3个字符。我认为{1,3}
是答案,但这似乎不起作用。我还查看了肯定查找,但不确定这是否正确/甚至无法让它执行我想要的操作。您可以使用
/^[^-_.]*(?:[-_.][^-_.]*){1,3}$/
见
详细信息
-字符串的开头^
-除[^-\.]*
、-
和
以外的任何0+字符
-出现一次、两次或三次(?:[-\.][^-\.]*){1,3}
-a[-.]
,-
或
-除[^-\.]*
、-
和
以外的任何0+字符
-字符串结束$
- 除了正则表达式之外,另一个选项是使用JavaScript
让str1='qwerty-123-123-123';
设str2='something-123_world';
设str3='qwerty-123-_whatever-something';
常量正则表达式=/[.-]/g;
设min=1;
设max=3;
函数验证(txt){
var len=txt.match(regex).length;
if(len>=min&&len ah这真是个好主意!谢谢!你能写一个答案让我投票并接受吗:)@Wiktor奇怪的微笑无处不在!-.
一个简单的解决办法是拆分并检查长度,例如,if(string.split(/-.]/).length<5){