RegEx字符限制

时间:2011-10-25 04:04:40

标签: javascript regex

我想将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 个答案:

答案 0 :(得分:3)

如果我的问题正确,那么这些应该是您正在寻找的:

  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. 最后请注意,我个人在我的RegExp中避免使用*,因为如果明星遇到结束斜线并且有人试图注释掉表达式,这会导致有趣的错误。

    /* Comment out some code
    var myRe = /[a-z]*/i; // The comment stops before the i.
    */ // This line breaks your code.
    
  6. 编辑:根据OP反馈更新第三点。