我正在处理一些使用正则表达式的代码。它适用于 Javascript 计算器。所有场景都有效,除了:
-number X number
负面影响是把所有东西都扔掉,我已经追踪到这个函数。通常,它会返回您在计算器屏幕上看到的内容。然而,当引入负数时,它返回 null。我不太擅长正则表达式,所以我希望有人能理解这一点?我怎样才能允许负面影响?
function(){
return expr.match(/^\d{1,}(\.\d{1,})?[-+*/]\d{1,}(\.\d{1,})?$/);
}
谢谢!
最佳答案
这是您的正则表达式:
/^\d{1,}(\.\d{1,})?[-+*/]\d{1,}(\.\d{1,})?$/
让我们把它分开:
- ^ 字符串以...开头
- \d{1,}//一位或多位数字
- (.\d{1,})?//后面跟着一个潜在的分数(点,然后是更多数字)
- [-+*/]//后跟运算符
- \d{1,}//后跟一位或多位数字
- (.\d{1,})?//后面跟着一个潜在的分数(点,然后是更多数字)
- $//字符串结束
所以,是的,您的正则表达式表示:“字符串必须以数字开头”。不带减号。如果添加 -?
,则可以选择 (?
) 允许减号 (-
)。您需要将该部分插入到“字符串开头为”之后、第一个数字序列之前。
关于javascript - 计算器中的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26068579/