我想构造一个正则表达式,匹配任何字母(包括重音符号和希腊语)、数字、连字符和空格,允许的总字符长度在 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/