构造这个JavaScript正则表达式的困难

我想构造一个正则表达式,匹配任何字母(包括重音和希腊语),数字,连字符和空格,允许的总字符长度在3到50之间。 这就是我所做的:
[- a-zA-Z0-9çæœáééíóúžàèìòùäëïöüÿâêîôûãñõåøαβγδεζηθικλμνξοπρστυφχψωÇÆŒÁÉÍÓÚŽÀÈÌÒÙÄËÏÖÜŸÂÊÎÔÛÃÑÕÅØΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ]{3,50}
现在我不想调整表达式,以便它不能以连字符或空格开头。它将用于验证用户名。 我想过使用负面的后视,但这些是限制: JavaScript不支持lookbehind。 lookbehind的替代方案并不真正适用,因为它们都依赖于其他JavaScript函数,我必然会使用match函数。 我希望这里有正则表达式英雄,因为它看起来并不简单。     
已邀请:
为了便于阅读,我用
a-z
替换了你的长字符类:
[a-z][- a-z]{2,49}
您也可以匹配当前的正则表达式,然后确保该字符串与另一个匹配中的
^[ -]
不匹配。     

要回复问题请先登录注册