javascript - 正则表达式匹配字符串中的字母和数字,可选地具有一组特殊字符
问题描述
https://regex101.com/r/RLi59p/1
/(?=.*[0-9])(?=.*[a-z])([a-z0-9]+)[!@#$%^&*]*$/i
我制作的正则表达式匹配以下模式:
Test2123
568test
test2rest
@test2rest
@test2rest@
但它无法匹配以下模式
@test2rest@5
@test2rest@test
解决方案
你需要在你的正则表达式中做一点修正,并像这样定义所有允许的字符,
(?=.*[0-9])(?=.*[a-z])[a-z0-9!@#$%^&*]*$
在你的正则表达式中,你有这个,
([a-z0-9]+)[!@#$%^&*]*
这意味着在您的输入字符串中,字母数字字符必须先出现,特殊字符最后出现,这就是失败的原因。
推荐阅读
- tensorflow - 给定pytorch中的任意两个对角坐标,在一批张量中获取靠近原点的矩形角
- php - 如何在 PHP 中修复 if 条件中的意外“{”错误?
- linux - rpmbuild 找不到文件。路径中缺少文件夹
- android - 使用 Android Studio 创建 SQLite DB 时出现数据库锁定错误
- java - 使用java中的堆栈在中缀表达式中创建括号
- c - c中的二分法程序为什么在if语句之前需要while?
- java - 为什么一个嵌套的while循环比另一个嵌套的while循环快?
- visual-c++ - 发布版本 MSVC 的调试符号
- nestjs - 带有 typeorm 和 class-validator 的 NestJS 实体中的 DRY 原则
- excel - 通过 VBA 从 Excel 复制后以 word 格式设置表格