/^(\-|\+)?([0-9]+|Infinity)$/
当我在查找过滤器时,我经常看到这种情况。虽然有许多变化,但通常都以(/为开头。最近,我发现这是一个建议,可以帮助解析字符串并确保其中只包含数字。在Mozilla的js页面上,我找到了一些其他运算符,但它并没有包括上述所有内容。
/^(\-|\+)?([0-9]+|Infinity)$/
当我在查找过滤器时,我经常看到这种情况。虽然有许多变化,但通常都以(/为开头。最近,我发现这是一个建议,可以帮助解析字符串并确保其中只包含数字。在Mozilla的js页面上,我找到了一些其他运算符,但它并没有包括上述所有内容。
http://www.regular-expressions.info/
你经常看到正则表达式写成/expression_here/
,因为在许多编程语言中,这些斜杠是开发人员构建正则表达式对象的一种简写方式。/^[0-9]*$/.test('44') // returns true
并且
/^[0-9]*$/.test('asdasd') // returns false
test
方法将字符串44
和asdasd
输入到正则表达式/^[0-9]*$/
中,它会返回true
,因为44
与表达式匹配,而对于asdasd
则返回false
,因为它不匹配。^
表示正则表达式必须从字符串的最开始处匹配
(\-|\+)
表示从字符串的开头开始匹配,要么匹配-
,要么匹配+
,问号表示这部分是可选的
[0-9]+|Infinity
的意思是“匹配从0到9的一个或多个数字”,或者 (|
) 匹配文本 Infinity
$
的意思是“然后要求字符串在此结束”
这是一个正则表达式,可以匹配正/负自然数或Infinity
。
/^(\-|\+)?([0-9]+|Infinity)$/
^(\-|\+)
- 匹配字符串开头的-
或+
字面字符之一。
?
- 前面的表达式,即-
/+
字符是可选的。换句话说,该表达式可以匹配0次或1次。
([0-9]+|Infinity)$
- 字符串结尾应为1个或多个数字或字符串Infinity
。
// Matches:
'-100'.match(/^(\-|\+)?([0-9]+|Infinity)$/);
'+100'.match(/^(\-|\+)?([0-9]+|Infinity)$/);
'Infinity'.match(/^(\-|\+)?([0-9]+|Infinity)$/);
// Does NOT match:
'5%'.match(/^(\-|\+)?([0-9]+|Infinity)$/);
'20/1'.match(/^(\-|\+)?([0-9]+|Infinity)$/);
'NaN'.match(/^(\-|\+)?([0-9]+|Infinity)$/);