Ruby:如何检查 UTF-8 字符串是否仅包含字母和数字?
我有一个 UTF-8 字符串,它可能是任何语言的。
如何检查它是否不包含任何非字母数字字符?
我在 UnicodeUtils Ruby gem 中找不到这样的方法。
示例:
- ėččę91 - 有效
- $120D - 无效
I have an UTF-8 string, which might be in any language.
How do I check, if it does not contain any non-alphanumeric characters?
I could not find such method in UnicodeUtils Ruby gem.
Examples:
- ėččę91 - valid
- $120D - invalid
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以使用字母数字的 POSIX 表示法:
输出:
You can use the POSIX notation for alpha-numerics:
Which outputs:
在 ruby 正则表达式中 \p{L} 表示任何字母(任何字形),
因此如果 s 代表您的字符串:
这将过滤掉非数字和字母。
In ruby regex \p{L} means any letter (in any glyph)
so if s represents your string:
This will filter out non numbers and letters.
一个字母数字代码点的模式是
从那里很容易推断出这样的内容: for 有一个负数:
或这个 for 都是正数:
或有时这样,具体取决于:
选择最适合您需要的一个。
The pattern for one alphanumeric code point is
From there it’s easy to extrapolate something like this for has a negative:
or this for is all positive:
or sometimes this, depending:
Pick the one that best suits your needs.