JavaScript正则表达式 - 匹配一系列十六进制数字

nor*_*thk 17 javascript regex

问候JavaScript和正则表达大师,

我想返回输入字符串中的所有匹配项,这些输入字符串是6位十六进制数字,其间有任意数量的空白区域.例如,"333333 e1e1e1 f4f435"应该返回一个数组:

array[0] = 333333  
array[1] = e1e1e1  
array[2] = f4f435
Run Code Online (Sandbox Code Playgroud)

这就是我所拥有的,但它并不完全正确 - 我不清楚如何在那里获得可选的空白区域,而我只获得一场比赛.

colorValuesArray = colorValues.match(/ [0-9A-Fa-f] {6} /);

谢谢你的帮助,

-NorthK

Gum*_*mbo 24

使用g标志全局匹配:

/[0-9A-Fa-f]{6}/g
Run Code Online (Sandbox Code Playgroud)

另一个很好的增强功能是添加字边界:

/\b[0-9A-Fa-f]{6}\b/g
Run Code Online (Sandbox Code Playgroud)

如果您愿意,还可以为不区分大小写的匹配设置i标志:

/\b[0-9A-F]{6}\b/gi
Run Code Online (Sandbox Code Playgroud)


gig*_*gnu 7

除了上面的答案之外,更直接的方法可能是:

/\p{Hex_Digit}{6}/ug

您可以在此处阅读有关 Unicode 属性的更多信息。