const regex = /^-?[0-9]+$/gm;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('^-?[0-9]+$', 'gm')
const str = `0
00
0000000000
0123456789
X0123456789
01234X56789
0123456789X
1
11
1111111111
1000000000
0000000001
1234567890
X1234567890
12345X67890
1234567890X
2
22
2222222222
2000000000
0000000002
2345678901
X2345678901
23456X78901
2345678901X
3
33
3333333333
3000000000
0000000003
3456789012
X3456789012
34567X89012
3456789012X
4
44
4444444444
4000000000
0000000004
4567890123
X4567890123
45678X90123
4567890123X
5
55
5555555555
5000000000
0000000005
5678901234
X5678901234
56789X01234
5678901234X
6
66
6666666666
6000000000
0000000006
6789012345
X6789012345
67890X12345
6789012345X
7
77
7777777777
7000000000
0000000007
7890123456
X7890123456
78901X23456
7890123456X
8
88
8888888888
8000000000
0000000008
8901234567
X8901234567
89012X34567
8901234567X
9
99
9999999999
9000000000
0000000009
9012345678
X9012345678
90123X45678
9012345678X
-0
-00
-0000000000
-0123456789
-X0123456789
-01234X56789
-0123456789X
-1
-11
-1111111111
-1000000000
-0000000001
-1234567890
-X1234567890
-12345X67890
-1234567890X
-2
-22
-2222222222
-2000000000
-0000000002
-2345678901
-X2345678901
-23456X78901
-2345678901X
-3
-33
-3333333333
-3000000000
-0000000003
-3456789012
-X3456789012
-34567X89012
-3456789012X
-4
-44
-4444444444
-4000000000
-0000000004
-4567890123
-X4567890123
-45678X90123
-4567890123X
-5
-55
-5555555555
-5000000000
-0000000005
-5678901234
-X5678901234
-56789X01234
-5678901234X
-6
-66
-6666666666
-6000000000
-0000000006
-6789012345
-X6789012345
-67890X12345
-6789012345X
-7
-77
-7777777777
-7000000000
-0000000007
-7890123456
-X7890123456
-78901X23456
-7890123456X
-8
-88
-8888888888
-8000000000
-0000000008
-8901234567
-X8901234567
-89012X34567
-8901234567X
-9
-99
-9999999999
-9000000000
-0000000009
-9012345678
-X9012345678
-90123X45678
-9012345678X
X
Y
Z`;
// Reset `lastIndex` if this regex is defined globally
// regex.lastIndex = 0;
let m;
while ((m = regex.exec(str)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
console.log(`Found match, group ${groupIndex}: ${match}`);
});
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for JavaScript, please visit: https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions