我正在尝试使用正则表达式匹配字符串末尾的数字.例如,字符串可能如下所示:
var foo = '101*99+123.12'; // would match 123.12
var bar = '101*99+-123'; // would match -123
var str = '101*99+-123.'; // would match -123.
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止所得到的,但如果没有小数点,它似乎匹配整个字符串:
foo.match(/\-?\d+.?\d+?$/);
Run Code Online (Sandbox Code Playgroud)
我认为这意味着:
\-?:可选" - "符号\d+:1位或更多位数.?:可选的小数点\d+?:小数点后可选1位或更多位数$:匹配字符串的结尾我错过了什么?
.匹配任何角色.你需要逃避它\.
试试这个:
/-?\d+\.?\d*$/
Run Code Online (Sandbox Code Playgroud)
那是:
-? // optional minus sign
\d+ // one or more digits
\.? // optional .
\d* // zero or more digits
Run Code Online (Sandbox Code Playgroud)
正如你在MDN的正则表达式页面上看到的那样,+?是1或更多的非贪婪匹配,而不是1或更多的可选匹配.
| 归档时间: |
|
| 查看次数: |
4758 次 |
| 最近记录: |