我想要一个正则表达式来检查字母A-F和a-f是否只出现一次。我该怎么做呢?我想检查用户输入中只有一个字母,该字母来自A-F或a-f。
答案 0 :(得分:1)
"我想检查用户输入中只有一个字母,该字母来自A-F或a-f "
您可以使用/^[a-f]$/i
匹配A-F
和a-f
范围内的单个字母。
let rx = /^[a-f]$/i;
console.log(rx.test('a'));
console.log(rx.test('F'));
console.log(rx.test('G'));
console.log(rx.test('aa'));

如果您的意思是输入可能是任意长度,但您必须确保只有一个字母且该字母位于A-F
和a-f
范围内,那么您可以这样做:
let rx = /^[^a-f]*[a-f][^a-f]*$/i;
console.log(rx.test('AF'));
console.log(rx.test('A'));
console.log(rx.test('2F3'));
console.log(rx.test('2G3'));

答案 1 :(得分:1)
我只是检查输入字符串的长度为1,并且它在你想要的范围内,而不是使用正则表达式:
var input = 'F';
var test = input.toLowerCase();
var aLetterCode = 97;
var fLetterCode = 102;
if (test.length() == 1 &&
test.charCodeAt(0) >= aLetterCode &&
test.charCodeAt(0) <= fLetterCode)
{
console.log("input is a match.");
}
答案 2 :(得分:0)
不确定你所说的确切含义......你想要的任何一个字母只使用一次,或者只使用一次使用过的字母,是字母还是字母?
对于我来说,在类似的情况下,正则表达式是匹配器,而不是计数器......你可以在[A-Fa-f]
上匹配_然后在匹配结果上计算一个/每个中使用的数量。
如果您只想要字符串中的那些字母,match_all ^[A-Fa-f]$
并计算结果