Javascript 十六进制格式的正则表达式

Javascript 十六进制格式的正则表达式,javascript,regex,Javascript,Regex,我尝试为此格式创建正则表达式: 0x3E、0xFf、0X32、0xaB 字符串必须在“x”之后以“0”开头,或在十六进制的2位数字(大写或不大写)之后以“x”开头,然后以“,”开头 字符串结尾没有“,” 这就是我到目前为止得到的“(0[xX][a-fA-F0-9]{2},)+” 但它不起作用 您可以尝试使用以下正则表达式: /^(0x[0-9a-f]{2})(,0x[0-9a-f]{2})*$/i 您可以尝试使用以下正则表达式: /^(0x[0-9a-f]{2})(,0x[0-9a-f]{2}

我尝试为此格式创建正则表达式:
0x3E、0xFf、0X32、0xaB 字符串必须在“x”之后以“0”开头,或在十六进制的2位数字(大写或不大写)之后以“x”开头,然后以“,”开头
字符串结尾没有“,”
这就是我到目前为止得到的“(0[xX][a-fA-F0-9]{2},)+”

但它不起作用

您可以尝试使用以下正则表达式:

/^(0x[0-9a-f]{2})(,0x[0-9a-f]{2})*$/i

您可以尝试使用以下正则表达式:

/^(0x[0-9a-f]{2})(,0x[0-9a-f]{2})*$/i

您可以尝试使用以下正则表达式:

/^(0x[0-9a-f]{2})(,0x[0-9a-f]{2})*$/i

您可以尝试使用以下正则表达式:

/^(0x[0-9a-f]{2})(,0x[0-9a-f]{2})*$/i

这个问题没有说明为什么需要这样做,但我可以想象,您最终会希望从逗号分隔的字符串中解析出有效的十六进制数。在这种情况下,在我看来,像这样的东西比正则表达式更容易、更健壮:

'0x3E,0xFf,0X32,0xaB,0xxaB,xyz'.split(',').filter(function(token) { return parseInt(token, 16); });
//returns ["0x3E", "0xFf", "0X32", "0xaB"]
如果您真的只想检查所有值是否都是有效的十六进制值,请将
filter
替换为
every

'0x3E,0xFf,0X32,0xaB'.split(',').every(function(token) { return parseInt(token, 16); });
//returns true

'0x3E,0xFf,0X32,0xaB,xyz'.split(',').every(function(token) { return parseInt(token, 16); });
//returns false

这个问题没有说明为什么需要这样做,但我可以想象,您最终会希望从逗号分隔的字符串中解析出有效的十六进制数。在这种情况下,在我看来,像这样的东西比正则表达式更容易、更健壮:

'0x3E,0xFf,0X32,0xaB,0xxaB,xyz'.split(',').filter(function(token) { return parseInt(token, 16); });
//returns ["0x3E", "0xFf", "0X32", "0xaB"]
如果您真的只想检查所有值是否都是有效的十六进制值,请将
filter
替换为
every

'0x3E,0xFf,0X32,0xaB'.split(',').every(function(token) { return parseInt(token, 16); });
//returns true

'0x3E,0xFf,0X32,0xaB,xyz'.split(',').every(function(token) { return parseInt(token, 16); });
//returns false

这个问题没有说明为什么需要这样做,但我可以想象,您最终会希望从逗号分隔的字符串中解析出有效的十六进制数。在这种情况下,在我看来,像这样的东西比正则表达式更容易、更健壮:

'0x3E,0xFf,0X32,0xaB,0xxaB,xyz'.split(',').filter(function(token) { return parseInt(token, 16); });
//returns ["0x3E", "0xFf", "0X32", "0xaB"]
如果您真的只想检查所有值是否都是有效的十六进制值,请将
filter
替换为
every

'0x3E,0xFf,0X32,0xaB'.split(',').every(function(token) { return parseInt(token, 16); });
//returns true

'0x3E,0xFf,0X32,0xaB,xyz'.split(',').every(function(token) { return parseInt(token, 16); });
//returns false

这个问题没有说明为什么需要这样做,但我可以想象,您最终会希望从逗号分隔的字符串中解析出有效的十六进制数。在这种情况下,在我看来,像这样的东西比正则表达式更容易、更健壮:

'0x3E,0xFf,0X32,0xaB,0xxaB,xyz'.split(',').filter(function(token) { return parseInt(token, 16); });
//returns ["0x3E", "0xFf", "0X32", "0xaB"]
如果您真的只想检查所有值是否都是有效的十六进制值,请将
filter
替换为
every

'0x3E,0xFf,0X32,0xaB'.split(',').every(function(token) { return parseInt(token, 16); });
//returns true

'0x3E,0xFf,0X32,0xaB,xyz'.split(',').every(function(token) { return parseInt(token, 16); });
//returns false


不工作意味着什么?你想做什么?正则表达式很可能不是最好的解决方案。不工作意味着什么?你想做什么?正则表达式很可能不是最好的解决方案。不工作意味着什么?你想做什么?正则表达式很可能不是最好的解决方案。不工作意味着什么?你想做什么?正则表达式很有可能不是最好的解决方案。最后的“i”是什么?@cheziHoyzer它允许匹配大小写字符。谢谢!这种格式应该在JavaScript中工作吗?var patt=newregexp(“/^(0x[0-9a-f]{2})(,0x[0-9a-f]{2})*$/i”);var res=部分试验(str)@您甚至可以尝试使用cheziHoyzer:
var patt=/^(0x[0-9a-f]{2})(,0x[0-9a-f]{2})*$/i;部分试验(str)最后的“i”是什么?@cheziHoyzer它允许匹配大小写字符。谢谢!这种格式应该在JavaScript中工作吗?var patt=newregexp(“/^(0x[0-9a-f]{2})(,0x[0-9a-f]{2})*$/i”);var res=部分试验(str)@您甚至可以尝试使用cheziHoyzer:
var patt=/^(0x[0-9a-f]{2})(,0x[0-9a-f]{2})*$/i;部分试验(str)最后的“i”是什么?@cheziHoyzer它允许匹配大小写字符。谢谢!这种格式应该在JavaScript中工作吗?var patt=newregexp(“/^(0x[0-9a-f]{2})(,0x[0-9a-f]{2})*$/i”);var res=部分试验(str)@您甚至可以尝试使用cheziHoyzer:
var patt=/^(0x[0-9a-f]{2})(,0x[0-9a-f]{2})*$/i;部分试验(str)最后的“i”是什么?@cheziHoyzer它允许匹配大小写字符。谢谢!这种格式应该在JavaScript中工作吗?var patt=newregexp(“/^(0x[0-9a-f]{2})(,0x[0-9a-f]{2})*$/i”);var res=部分试验(str)@您甚至可以尝试使用cheziHoyzer:
var patt=/^(0x[0-9a-f]{2})(,0x[0-9a-f]{2})*$/i;部分试验(str)