作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我这样做是为了验证用户名:
if [[ "$username" =~ ^[a-z][_a-z0-9]{2,17}$ ]]; then
但实际上,包含 é、ç、à 等 unicode 字符的用户名是被接受的。我应该使用什么正则表达式类来将字符串限制为仅 ascii 字母(a、b、c、d ... z)?
最佳答案
bullet-proof 方法是简单地将 [a-z]
拼写为 [abcdefghijklmnopqrstuvwxyz]
。那里!自 1970 年 1 月 1 日 00:00:00 以来,没有混淆语言环境或有趣的字符类,并且在任何 shell 上都受支持。面向 future ,无论您的操作系统供应商、外壳供应商、Unix 标准化流程或 BOFH 认为什么很酷。
有一个额外的变量lc
比如
lc=abcdefghijklmnopqrstuvwxyz
正则表达式甚至变得可读:
[$lc][_0-9$lc]{2,17}
这就是高度健壮和可移植的 configure
脚本所做的。
关于regex - 验证字符串是否仅包含 ASCII 字符和数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16731455/
我是一名优秀的程序员,十分优秀!