【问题标题】:Regex for french characters fails validation based on the position of french character法语字符的正则表达式无法根据法语字符的位置进行验证
【发布时间】:2019-01-07 13:21:51
【问题描述】:

在我的代码中,我有一个密码正则表达式(由某人编写) (/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[\x20-\x7E]{8,40}$/) 不支持法语字符。 我对其进行了一些修改以支持法语字符。和 /^(?=.*[a-z])(?=.*[A-Z])(?:.*[àâäæèéêëîïôœùûüÿçÀÂÄÈÉÊËÎÏÔŒÙÛÜŸÇ]*)(?=.*\d)[\x20-\x7E]{8,40}$/ 是新的正则表达式。但是这个没有按预期工作。行为随着法语角色的位置而变化。 例如,NewàTest123! - 作品和NewTàest123!不工作

关于角色位置改变时为什么会失败的任何想法?

【问题讨论】:

  • 将这些字符添加到 ASCII 匹配字符类中,参见regex101.com/r/HzACAw/1
  • @WiktorStribiżew:你只是在Ä和È之间错过了Æ
  • 这行得通。谢谢!!知道为什么我发布的另一个不工作吗?
  • 谢谢!!这有帮助!

标签: regex unicode french


【解决方案1】:

工作正则表达式:

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[\x20-\x7EàâäæèéêëîïôœùûüÿçÀÂÄÈÉÊËÎÏÔŒÙÛÜŸÇ]{8,40}$

感谢@Wiktor Stribiżew

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-18
    • 2014-05-10
    • 2014-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多