javascript - 构建此 JavaScript 正则表达式的困难

标签 javascript regex lookbehind

我想构造一个正则表达式,匹配任何字母(包括重音符号和希腊语)、数字、连字符和空格,允许的总字符长度在 3 到 50 之间。

这是我做的:

[- a-zA-Z0-9çæœáééíóúžàèìòùäëïöüÿâêîôûãñõåøαβγδεζηθικλμνξοπρστυφχψωÇÆŒÁÉÍÓÚŽÀÈÌÒÙÄËÏÖÜŸÂÊÎÔÛÃÑÕÅØΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ]{3,50}

现在我不想调整表达式,使其不能以连字符或空格开头。它将用于验证用户名。

我考虑过使用负向回顾,但有以下限制:

  • JavaScript 不支持lookbehind。
  • alternatives for a Lookbehind 并不真正适用,因为它们都依赖于其他 JavaScript 函数,而我必须使用 match 函数。

我希望这里有任何正则表达式英雄,因为它看起来并不简单。

最佳答案

为了便于阅读,我用 a-z 替换了您的长字符类:

[a-z][- a-z]{2,49}

您还可以与当前的正则表达式进行匹配,然后确保该字符串与另一个匹配中的 ^[ -] 不匹配。

关于javascript - 构建此 JavaScript 正则表达式的困难,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5010410/

相关文章:

javascript - ng-click 需要两次点击才能查看更新

javascript - REGEX - 输入必须有 x 个唯一数字

javascript - Ember.js 使用链接查询参数子表达式

javascript - 在 .json 中查找最大值和最小值

Javascript正则表达式测试字符串是否在分隔行上只有数字

c++ - 正则表达式查找 mp3 html 文件

regex - 在 Movable Type 模板中使用正后视会导致错误,因为 < in pattern string

regex - 正则表达式 - 后视

python - 条件后视(python regex),如何排除某些单词但包含某些单词?

javascript - 使用 jQuery 屏蔽文本框中的值