我需要可以匹配这样的字符串的正则表达式
_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/