Including a hyphen in a regex character bracket?

前端 未结 6 490
爱一瞬间的悲伤
爱一瞬间的悲伤 2020-11-22 03:34
$.validator.addMethod(\'AZ09_\', function (value) { 
    return /^[a-zA-Z0-9.-_]+$/.test(value); 
}, \'Only letters, numbers, and _-. are allowed\');
6条回答
  •  北海茫月
    2020-11-22 04:23

    Generally with hyphen (-) character in regex, its important to note the difference between escaping (\-) and not escaping (-) the hyphen because hyphen apart from being a character themselves are parsed to specify range in regex.

    In the first case, with escaped hyphen (\-), regex will only match the hyphen as in example /^[+\-.]+$/

    In the second case, not escaping for example /^[+-.]+$/ here since the hyphen is between plus and dot so it will match all characters with ASCII values between 43 (for plus) and 46 (for dot), so will include comma (ASCII value of 44) as a side-effect.

提交回复
热议问题