canonical change to /\ dbadge g
/\ dbadge g can match 0 digits, so it won't stop, and there will be an endless cycle
.
< hr >
ide/Regular_Expressions" rel=" nofollow noreferrer "> MDN regular expression
regular expression is used for to match a string that matches a certain pattern .
* indicates that the previous expression is matched 0 or more times.
so / c/g.test ("a string") indicates the string "a string" whether there is a c , and / c*/g.test ("a string") indicates the string "a string" whether has at least 0 c. Obviously has at least 0 that is absolutely true. So / c*/g.exec ("a string") will match at the very beginning (because you need at least 0, even if I start with a , I return 0 c`, that is, an empty string meets your requirements, if you use while to loop, I will always give you an empty string).
< hr >
regular is used to match strings that match a certain pattern.
for example, / b indicates a word boundary, and / string\ b/g.test ("strings") is false , because the string strings is followed by s after g , so it is not a word boundary. / string\ b/g.test ("string~") is true because g is followed by ~ , the word is over.
but this cannot say that there is a word boundary between g and ~ such things as / b . A string is just a simple string of characters, and string~ is just a string of characters such as s , t , r . ~ . / b whether there is a regular expression parser finds that your string~ is string , followed by ~ , and you have finished a word in string , so it determines that your string conforms to the pattern such as / string\ bswag .
var reg = /\d+/g;
var str = '110120119114';
var result = str.match(reg).join(',');
just one demand can still get in touch with the endless cycle, and he is also drunk.
something better
function parse(str) {
var at = 0, len = str.length, results = [];
while (at < len) {
var ch = str[at];
if (/\d/.test(ch)) {
var number = '';
while (ch && /\d/.test(ch)) {
number += ch;
ch = str[PPat];
}
number = parseFloat(number, 10);
results.push(number);
}
atPP;
}
return results;
}
< hr >
regular expression? We don't need regular expressions, we just need a NFA