看起来很简单,但我找不到如何做到这一点。我想在一定范围内匹配一个字符,比如a到z。
[a-z]
当前正在执行以下操作:
const regex = RegExp('[a-z]');
console.warn('TEST', regex.test('a'))
很简单。然而,我希望它是一个单一的角色。如果有不止一个,无论它们是否也属于该范围,都需要失败。例如:
a
应通过b
应通过ab
应失败aa
应失败abcdefg
应失败
你明白了。
我试过一些变体,比如L
[{1}a-z]
它没有任何作用。最终,它仍然接受该范围内的任何字符组合。
使用^
和$
固定字符串,它们分别与"字符串的开始"one_answers"字符串的结束"匹配。
正则表达式将是^[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)));
顺便说一句,[{1}a-z]
并没有做你认为它会做的事。您打算匹配一个字母字符,但这又向匹配列表中添加了三个字符,即:
- a-z
{
}
- CCD_ 16
我想你指的是[a-z]{1}
,如前所述,它相当于[a-z]
。