javascript - 正则表达式字符限制

标签 javascript regex

我也想更改下面的正则表达式 a-Z 0-9 和下划线

var nameRegex = /^[a-zA-Z]+(([\'\,\.\-][a-zA-Z])?[a-zA-Z]*)*$/;

这个2,4是什么意思?这是否意味着检查 TLD 是否为分钟。 2 到 4 个字符。最大?

var emailRegex = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/;

如何添加必需的 250 个字符,最后的 {250,250} 可以吗?

// original
      var messageRegex = 
new RegExp(/<\/?\w+((\s+\w+(\s*=\s*(?:".*?"|'.*?'|[^'">\s]+))?)+\s*|\s*)\/?>/gim); 

// would this work?
      var messageRegex = 
new RegExp(/<\/?\w+((\s+\w+(\s*=\s*(?:".*?"|'.*?'|[^'">\s]+))?)+\s*|\s*)\/?>/gim){250,250}$/; 

最佳答案

如果我正确地理解了您的问题,那么这些应该就是您要查找的内容:

  1. 匹配 A-z、0-9 和 _ 范围内的一组字符。

    // Would match any input with A-z 0-9 or _ in any position, given at least one char.
    var nameRegex = /^[A-Za-z\d_]+$/;
    
  2. 您对 {2,4} 的看法是正确的。它指定 [\w-] 应该 匹配两个、三个或四个字符。

  3. 您的消息 RegExp 将强制输入的长度恰好为 250 个字符才能获得匹配项。如果您想要超过 250 个且少于 500 个,请附加 {251,500}

  4. 最后一点,RegExp 文字看起来像 /someRegex/ig。如果您使用的是文字,则没有理由在构造函数中换行(即 new RegExp)。

  5. 最后一点,我个人在我的正则表达式中避免使用 * ,因为如果星号遇到结束斜杠并且有人试图注释掉表达式,这可能会导致有趣的错误。

    /* Comment out some code
    var myRe = /[a-z]*/i; // The comment stops before the i.
    */ // This line breaks your code.
    

编辑:根据OP反馈更新了第三点。

关于javascript - 正则表达式字符限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7884573/

相关文章:

javascript - Angular Schema Form - arrayIndex 作为按钮 onClick 的参数

regex - 在在线正则表达式测试器中工作的 MariaDB 正则表达式在 SELECT WHERE REGEXP 中不起作用

javascript - 返回语句上的 JSLint 错误

javascript - 自定义信息窗口内容 > Google map

javascript - Angular 删除从服务器获取数据时的 CORS 错误

ruby - 正则表达式在 Ruby 中捕获相同数字的组

javascript - 正则表达式 - 去除第一个和第二个正斜杠之间的文本

regex - 正则表达式多次匹配代码块

java - 正则表达式替换 Java 文件中的所有字符串文字

javascript - 如何在 Redis 记录中添加 unix 时间戳作为过期时间?