在Stackoverflow的另一篇文章中,我找到了这行代码
myString = 'hello112';
myNumber = myString.match(/\d+/)[0];
在这种情况下,' myNumber'变量的值为122。
但是当我在以下情况下使用.match时,它会失败:
myColor = 'rgb(210,255,105);
myNumbers = myColor.match(/\d+/);
' myNumbers'变量是一个数组,但它的长度为1,它只包含' 210'而不是其他2个数字。
Javascript中有没有办法可以实现这样的目标?
input = 'rgb(210,255,105);
output = [210,255,105];
非常感谢。
答案 0 :(得分:3)
除非另有说明,否则complete
仅匹配第一个实例,而不是全部匹配。你需要全球性的" g"在模式之后标记。
match()
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp
附注:您不能将全局修饰符与子组匹配结合使用,但这不会影响您的情况。
答案 1 :(得分:1)
你必须使用g
- 全球旗帜。
myColor = 'rgb(210,255,105)';
console.log(myColor.match(/\d+/g));