正则表达式单次出现

时间:2016-06-17 01:13:27

标签: javascript regex

我想要一个正则表达式来检查字母A-F和a-f是否只出现一次。我该怎么做呢?我想检查用户输入中只有一个字母,该字母来自A-F或a-f。

3 个答案:

答案 0 :(得分:1)

"我想检查用户输入中只有一个字母该字母来自A-F或a-f "

您可以使用/^[a-f]$/i匹配A-Fa-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-Fa-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]$并计算结果