看起来很简单,但我找不到怎么做.我想匹配某个范围内的单个字符,例如a到z.
[AZ]
目前正在做以下事项:
const regex = RegExp('[a-z]');
console.warn('TEST', regex.test('a'))
Run Code Online (Sandbox Code Playgroud)
很简单.但是我希望它是一个单一的角色.如果有多个,无论它们是否也属于该范围,都需要失败.例如:
a 应该通过b 应该通过ab 应该失败aa 应该失败abcdefg 应该失败你明白了.
我尝试了一些变化,如L
[{1} AZ]
哪个什么都没做.最终它仍然接受该范围内的任何角色组合.
使用^和将字符串向下固定$,分别与"字符串的开头"和"字符串的结尾"匹配.
你的正则表达式就是^[a-z]$,这意味着你希望匹配a和之间的单个字符z,并且该单个字符必须是要匹配的整个字符串.
原因[a-z]{1}(相当于[a-z])不起作用是因为您可以在字符串中匹配单个字符.字符串的开头/结尾不是"固定下来".
let str = ['a','b','ab','aa','abcdefg'];
const regex = /^[a-z]$/;
str.forEach(w => console.warn(w, regex.test(w)));Run Code Online (Sandbox Code Playgroud)
顺便说一句,[{1}a-z]不做你认为它做的事情.您打算匹配单个字母字符,但这会在匹配列表中再添加三个字符,这将变为:
{}1. 我认为你的意思是[a-z]{1},如前所述相当于[a-z].
| 归档时间: |
|
| 查看次数: |
42 次 |
| 最近记录: |