问题
我希望能够使用单个正则表达式(如果可能)来要求字符串适合[A-Za-z0-9_]
但不允许:
- 仅包含数字或/和符号的字符串。
- 以符号开头或结尾的字符串
- 多个符号彼此相邻
有效的
test_0123
t0e1s2t3
0123_test
te0_s1t23
t_t
无效的
t__t
____
01230123
_0123
_test
_test123
test_
test123_
制定规则的原因
这样做的目的是过滤我正在处理的网站的用户名。由于特定原因,我已经制定了规则。
仅包含数字和/或符号的用户名可能会导致路由和数据库查找出现问题。
/users/#{id}
允许的路由id
是用户的 id 或用户名。因此名称和 ID 不应该发生冲突。_test
看起来很奇怪,我不相信它是有效的子域,即_test.example.com
我不喜欢
t__t
子域的外观。IEt__t.example.com