匹配某个范围内的单个Regex字符



看起来很简单,但我找不到如何做到这一点。我想在一定范围内匹配一个字符,比如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]$,这意味着您希望在az之间匹配单个字符,并且该单个字符必须是要匹配的整个字符串。

[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]

最新更新