javascript - 匹配包含下划线、小写 ASCII 字母、ASCII 数字、连字符或点的字符串,但不以点和连字符开头

标签 javascript regex validation

我需要可以匹配这样的字符串的正则表达式

_test
123test
test
test_123
test-123
123.a

我创建了这个正则表达式:

/^[_0-9a-z][_.\-a-z0-9]*$/

但是,如果字符串仅包含数字,我想排除它。

如何修复它?

最佳答案

为了避免匹配仅数字字符串,请添加否定前瞻:

^(?![0-9]+$)[_0-9a-z][_.\-a-z0-9]*$
 ^^^^^^^^^^

(?![0-9]+$) 前瞻仅在字符串开头触发一次,并将尝试匹配一个或多个数字直至字符串末尾。如果找到它们,则匹配将失败(不会返回任何匹配项),因为前瞻为

关于javascript - 匹配包含下划线、小写 ASCII 字母、ASCII 数字、连字符或点的字符串,但不以点和连字符开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39368319/

相关文章:

javascript - javascript es6 中的静态方法发生了什么?

java - 使用循环进行输入验证

java - 如何使用 hibernate validator 检查长度为 5 或 9?

javascript - 如何在reactjs中手动触发dom上的点击事件

javascript - 使用 lodash 对数组对象与日期进行排序

javascript - 在按钮内单击子元素时不会触发父 onClick

regex - 在 Scala 中使用带过滤器的正则表达式

标点符号的Javascript正则表达式(国际)?

javascript - 正则表达式生成类似货币的格式

java - 未执行自定义约束 validator 注释