数字转千分位正则表达式
function format(number){
//var reg = /(\d{1,3})(?=(\d{3})+(\.(\d)*$))/g;
var reg =/(\d{1,3})(?=((\d{3}))+(\.\d*)?$)/g;//这个更棒
return (number.toFixed(2) +'').replace(reg,'$&,');
}
console.log(format(12345678.123));//=>12,345,678.12
\d
: 匹配任意数字(digit .n 数字----方便记忆LOL)
{n,m}
:m和n均为非负整数,其中n<=m。最少匹配n次且最多匹配m次。例如,“o{1,3}”将匹配“fooooood”中的前三个o。“o{0,1}”等价于“o?”。请注意在逗号和两个数之间不能有空格。
?=pattern
:正向肯定预查,在任何匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如,“Windows(?=95|98|NT|2000)”能匹配“Windows2000”中的“Windows”,但不能匹配“Windows3.1”中的“Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。
+
:匹配前面的子表达式一次或多次。例如,“zo+”能匹配“zo”以及“zoo”,但不能匹配“z”。+等价于{1,}。
\.
: 转义用于匹配小数点.
。
*
:匹配前面的子表达式零次或多次。例如,zo*能匹配“z”以及“zoo”。*等价于{0,}。
?
:匹配前面的子表达式零次或一次。例如,“do(es)?”可以配“does”或“does”中的“do”,等价于{0,1}。?
还有另外其它的用法,用于添加非贪婪匹配特性。
$
:匹配输入字符串的结束位置。如果设置了RegExp对象的Multiline属性,KaTeX parse error: Undefined control sequence: \n at position 5: 也匹配“\̲n̲”或“\r”之前的位置。 `g…&`:表示与 regexp 相匹配的子串。