Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.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
Javascript 提取与特定模式匹配的所有值_Javascript_Node.js_Regex - Fatal编程技术网

Javascript 提取与特定模式匹配的所有值

Javascript 提取与特定模式匹配的所有值,javascript,node.js,regex,Javascript,Node.js,Regex,我有一个输入字符串 var input = 'J1,J2, J3'; 我使用以下模式来提取组值 var regex = /(,? ?(?<JOUR>J[0-9]+)+)/ match.groups只包含一个组。如何从输入字符串中获取所有组J1、J2和J3?您可以使用字符串获取组 input.match(/J[0-9]+/g) var输入='J1,J2,J3'; console.log(input.match(/J[0-9]+/gi))匹配大写字母J,然后匹配任意数量的数字:

我有一个输入字符串

var input = 'J1,J2, J3';
我使用以下模式来提取组值

var regex = /(,? ?(?<JOUR>J[0-9]+)+)/
match.groups
只包含一个组。如何从输入字符串中获取所有组J1、J2和J3?

您可以使用字符串获取组

input.match(/J[0-9]+/g)
var输入='J1,J2,J3';

console.log(input.match(/J[0-9]+/gi))
匹配大写字母J,然后匹配任意数量的数字:

var输入='J1,J2,J3';
var regex=/J[0-9]+/g;

console.log(input.match(regex))您可以考虑字符串的开头和带有可选空格的逗号,并删除外部组以仅使用1个捕获组。为了防止数字成为较大单词的一部分,可以添加单词边界
\b

请注意,您可以在
)+
之后省略量词
+
,因为这将重复该组,并仅给出上一次迭代的值

(?:^|[,-] ?)(?<JOUR>J[0-9]+)\b
const输入='J1、J2、J3、J10';
常量regexJfollowOneDigit=/(J\d{1}(?!\d))/g
常量regexJfollowOneOrMoreDigit=/(J\d+)/g
console.log(input.match(regexJfollowOneDigit))

控制台。日志(输入。匹配(ReExjJuxOnEndoReMeRigIt))< /代码>你认为这里是什么组?为什么不使用简单的
输入。拆分(',')
?请使用匹配exec@connexo我有更多的操作员和部门。我只是在这里添加了一个示例。我的输入很复杂,如“J1、J2、J3-J5、J7”等。您可以使用
input.match(/J[0-9]+/gi)
仅获取groups@JagsSparrow它能用,谢谢。请将其作为答案发布,我将接受这只匹配一个数字(“J10”将导致“J1”),我认为预期结果是,J+一个数字。现在我将更新帖子,使其与J之后的多个数字相匹配。
(?:^|[,-] ?)(?<JOUR>J[0-9]+)\b