在正则表达式字符括号中包含连字符?

2024-05-23 17:47:35 发布

您现在位置:Python中文网/ 问答频道 /正文

$.validator.addMethod('AZ09_', function (value) { 
    return /^[a-zA-Z0-9.-_]+$/.test(value); 
}, 'Only letters, numbers, and _-. are allowed');

当我使用像test-123这样的东西时,它仍然会像连字符无效一样触发。我试过\---


Tags: andtestonlyreturnvaluefunctionvalidatorare
3条回答

\-应该能够转义字符范围中的-。你能引用一下你测试过的东西吗?因为它似乎起作用了:http://jsbin.com/odita3

使用\-转义应该没问题,但您也可以尝试将它放在character类的开头或结尾。这应该对你有用:

/^[a-zA-Z0-9._-]+$/

使用\-转义连字符是正确的方法。

我已经验证了表达式/^[a-zA-Z0-9.\-_]+$/是否允许使用连字符。您还可以使用\w类将其缩短为/^[\w.\-]+$/

(将连字符放在表达式的最后实际上会导致它不需要转义,因为它不可能是范围的一部分,但是您可能仍然希望养成总是转义它的习惯。)

相关问题 更多 >