gpt4 book ai didi

ruby - 用于验证仅包含字符(没有特殊字符但带有重音字符)、空格和数字的字符串的正则表达式

转载 作者:数据小太阳 更新时间:2023-10-29 08:01:42 24 4
gpt4 key购买 nike

我正在使用 Ruby on Rails 3.0.9,我想验证一个只能包含字符(不区分大小写的字符)、空格和数字的字符串。

更多:

  • 不允许使用特殊字符(例如:!"£$%&/()=?^),-_ 除外;
  • 允许使用重音字符(例如:à、è、é、ò、...);

我从 this question 知道的正则表达式是 ^[a-zA-Z\d\s]*$ 但这不会验证特殊字符和重音字符。

那么,我应该如何改进正则表达式?

最佳答案

我写了^(?:[^\W_]|\s)*$ answer in the question you referred to (如果我知道你想要允许 _ 和 - 实际上会有所不同)。我自己不是 Ruby 的人,我没有意识到 Ruby 默认不使用 Unicode 进行正则表达式匹配。

抱歉我缺乏 Ruby 经验。 What you want to do is use the u flag.这会切换到 Unicode (UTF-8),因此会捕获重音字符。 这是您想要的模式:

^[\w\s-]*$

And here it is in action at Rubular.我认为这应该可以解决问题。

u 标志 works on my original answer as well,尽管那个并不意味着允许 _ 或 - 字符。

关于ruby - 用于验证仅包含字符(没有特殊字符但带有重音字符)、空格和数字的字符串的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6776982/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com