正如标题所说...我正在尝试解析一个字符串
2x + 3y
我试图只获取系数(即 2 和 3)
我首先用空格字符作为分隔符来标记它,给我“2x”“+”“3y”
然后我再次将其解析为该语句以仅获取系数
var number = eqTokens[i].match(/(\-)?\d+/);
我尝试打印输出,但它给了我“2”,
为什么打印成这样,我该如何解决?我尝试使用:
number = number.replace(/[,]/, "");
但这只会给我一个错误,即 number.replace 不是函数
最佳答案
这有什么问题吗?
> "2x + 3y".match(/-?\d+(?=[A-Za-z]+)/g)
[ '2', '3' ]
上述正则表达式仅当数字后跟一个或多个字母时才会匹配数字。
关于Javascript 正则表达式匹配返回末尾带有逗号的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27097762/