用于3个字母数字和3个句号的javascript正则表达式模式

用于3个字母数字和3个句号的javascript正则表达式模式,javascript,jquery,regex,Javascript,Jquery,Regex,我对regex不熟悉,试图为客户编写一个模式,以便将他们自己的自定义详细信息添加到产品中。其理念是允许客户最多有3个字母数字字符和3个句号/句点,例如,这些都是有效的条目: abc ab a.b.c a..bc ... a.b. etc 鉴于这些条款无效: abcd (too many characters) a.... (too many .) abcd. (too many alphanumeric) 到目前为止,我已经得到了以下信息,但它没有检测到字母和。交错排列:例如“a.b.c”

我对regex不熟悉,试图为客户编写一个模式,以便将他们自己的自定义详细信息添加到产品中。其理念是允许客户最多有3个字母数字字符和3个句号/句点,例如,这些都是有效的条目:

abc
ab
a.b.c
a..bc
...
a.b.
etc
鉴于这些条款无效:

abcd (too many characters)
a.... (too many .)
abcd. (too many alphanumeric)
到目前为止,我已经得到了以下信息,但它没有检测到字母和。交错排列:例如“a.b.c”

这就是我所处的位置:

$(document).on('keyup', 'input.custom', function() {
   currentText = $(this).val();
   reg = /^([a-zA-Z]{0,3})|([.]{0,3})$/igm;
   if (currentText.match(reg)) {
    console.log('match');
   } else {
    console.log('no match');    
   }
 });

感觉我很接近,但错过了一些非常重要的事情

匹配:^[a-zA-Z0-9.]{6}$(如果还允许下划线,则可以将范围替换为\w。)


然后计算文本中句点的出现次数,并确保它是3。

匹配:^[a-zA-Z0-9.]{6}$(如果还允许下划线,则可以将范围替换为\w。)


然后计算文本中句点的出现次数,并确保它是3。

使用如下环视

^(?!(?:[^.\n]*\.){4,})(?!(?:[^A-Za-z0-9\n]*[A-Za-z0-9]){4,})(?=.*[A-Za-z.0-9]).*$

说明:

  • (?!(?:[^.\n]*\){4,})
    断言字符串中不存在4个或更多点
  • (?!(?:[^A-Za-z0-9\n]*[A-Za-z0-9]){4,})
    声明字符串中不存在4个或更多字母数字字符
  • (?=.[A-Za-z.0-9])
    断言必须存在字母数字或点
  • 仅当满足上述所有条件时,才匹配相应的字符串

使用如下所示的观察区

^(?!(?:[^.\n]*\.){4,})(?!(?:[^A-Za-z0-9\n]*[A-Za-z0-9]){4,})(?=.*[A-Za-z.0-9]).*$

说明:

  • (?!(?:[^.\n]*\){4,})
    断言字符串中不存在4个或更多点
  • (?!(?:[^A-Za-z0-9\n]*[A-Za-z0-9]){4,})
    声明字符串中不存在4个或更多字母数字字符
  • (?=.[A-Za-z.0-9])
    断言必须存在字母数字或点
  • 仅当满足上述所有条件时,才匹配相应的字符串

上面的正则表达式有什么问题,您觉得很接近,但不符合要求?我一直在使用它来测试匹配情况,虽然它与aab匹配。。。aab。abc它与a.b.c.a.不匹配。BC你觉得上面的正则表达式有什么问题,很接近并且不符合要求?我一直在用它测试匹配,虽然它与aab匹配。。。aab。abc它与a.b.c.a.不匹配。BC这太完美了,非常感谢你的解释,它真的帮助我理解了!这是完美的,非常感谢你的解释-它真的帮助我理解!