Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于匹配的正则表达式';A00000和x27;格式化javascript_Javascript_Regex - Fatal编程技术网

用于匹配的正则表达式';A00000和x27;格式化javascript

用于匹配的正则表达式';A00000和x27;格式化javascript,javascript,regex,Javascript,Regex,我需要从字符串中匹配格式为“A00000”、“B12342”、“W3344”的子字符串。基本上,第一个字符总是一个字母,后面五个字符是数字 我有两个正则表达式,看起来都是正确的: str.match(/[A-Z]{1}\d{5}/) str.match(/^[A-Z]\d{5}/) 哪一个更严格,还有比这两个更好的吗?谢谢。要将模式作为更大字符串的一部分进行匹配,而不是仅在字符串的开头或任何位置进行匹配,并使其“严格”,可以使用边界元字符: /\b[A-Z]\d{5}\b/g /g修

我需要从字符串中匹配格式为“A00000”、“B12342”、“W3344”的子字符串。基本上,第一个字符总是一个字母,后面五个字符是数字

我有两个正则表达式,看起来都是正确的:

str.match(/[A-Z]{1}\d{5}/)

str.match(/^[A-Z]\d{5}/)   

哪一个更严格,还有比这两个更好的吗?谢谢。

要将模式作为更大字符串的一部分进行匹配,而不是仅在字符串的开头或任何位置进行匹配,并使其“严格”,可以使用边界元字符:

/\b[A-Z]\d{5}\b/g
/g
修饰符进行全局搜索并查找更多匹配项

示例

> 'A12345 B43221'.match(/\b[A-Z]\d{5}\b/g)
["A12345", "B43221"]

你也可以锚定末端,使其更加严格。第一个可以在字符串中的任何位置找到它。第二个仅当它位于字符串的开头时才找到它<代码>{1}无效。
{1}
部分不会更改任何内容。但是如果表达式位于其他字符串的开头,则
^
仅对表达式进行筛选。。。我不知道你是否想要那个!第二个被锚定到线的起点。您说过它是较长字符串的一部分,所以您可能不需要此锚。这取决于
XYZA00000
是否应匹配。您的模式很好,但如果在一个长字符串中它匹配两个或多个子字符串,它将拾取所有子字符串。我怎样才能限制这种模式,使其只拾取一个?@KananFarzali Ehm,仅获取第一个匹配?我真的说不出来,因为我不知道哪一个匹配更适合你:)如果只是第一个匹配,你可以去掉
/g
修饰符。其实没关系,它们是完全相同的字符串:)我删除了/g,效果很好。谢谢你!