我也把它看作+ $。
我正在使用
$(this).text( $(this).text().replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1,") );
将10000转换为10,000等。
我想我理解其他一切:
答案 0 :(得分:7)
我认为你有点误读了它:
- (?= \ d {3}) - 如果后跟3个数字
请注意,正则表达式实际上是:
(?=(\d{3})+
即。你错过了一个开放的paren。以下全部内容:
(\d{3})+(?!\d)
在(?= ... )
范围内,这是零宽度前瞻断言 - 这是一种很好的方式,可以说内部的内容应该遵循我们目前为止所匹配的内容,但我们不知道实际上消耗它。
(?!\d)
表示\d
(即数字)应该不,所以总计:
(\d)
找到并抓取一个数字。(?=(\d{3})+(?!\d))
声明应该跟随一个或多个三位数字组,但它们不应该有其他数字跟随它们。我们用"$1,"
替换,即捕获的第一个数字和逗号。
结果,我们在下面有三位数的数字之后放置逗号,这是一个很好的方式来说我们将逗号添加为千位分隔符!
答案 1 :(得分:1)
?!
表示否定前瞻,用于匹配未跟随其他内容的内容,在您的情况下为数字