0

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

这是我做的:

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

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

我考虑过使用负面的后视,但这些是限制:

  • JavaScript 不支持后视。
  • 后视的替代方案并不真正适用,因为它们都依赖于其他 JavaScript 函数,我必须使用 match 函数。

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

4

1 回答 1

2

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

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

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

于 2011-02-15T22:46:33.433 回答