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

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

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

当我使用某些东西test-123时仍然触发,就像连字符无效一样。我试着\---


繁星coding
浏览 863回答 3
3回答

翻阅古今

转义使用\-应该没问题,但您也可以尝试将它放在字符类的开头或结尾。这应该适合你:/^[a-zA-Z0-9._-]+$/

撒科打诨

使用连字符\-是正确的方法。我已经验证表达式/^[a-zA-Z0-9.\-_]+$/允许使用连字符。您也可以使用\w该类将其缩短为/^[\w.\-]+$/。(将连字符放在表达式的最后位置实际上导致它不需要转义,因为它不能成为范围的一部分,但是你可能仍然想要养成总是逃避它的习惯。)

拉风的咖菲猫

\ - 可能没有用,因为你用服务器从服务器传递了所有东西。如果是这种情况,你应该首先逃避\所以服务器端程序也可以处理它。在服务器端字符串中:\\ -在客户端:\ -在正则表达式(封面): -或者你可以简单地放在[]括号中。
打开App,查看更多内容
随时随地看视频慕课网APP