我也想更改下面的正则表达式 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}$/;
最佳答案
如果我正确地理解了您的问题,那么这些应该就是您要查找的内容:
匹配 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,4}
的看法是正确的。它指定[\w-]
应该 匹配两个、三个或四个字符。您的消息 RegExp 将强制输入的长度恰好为 250 个字符才能获得匹配项。如果您想要超过 250 个且少于 500 个,请附加
{251,500}
。最后一点,RegExp 文字看起来像
/someRegex/ig
。如果您使用的是文字,则没有理由在构造函数中换行(即new RegExp
)。最后一点,我个人在我的正则表达式中避免使用
*
,因为如果星号遇到结束斜杠并且有人试图注释掉表达式,这可能会导致有趣的错误。/* 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/