(phixonline)-->
with javascript_semantics
procedure commatize(string s, sep=",", integer start=1, step=3)
integer l = length(s)
for i=start to l do
if find(s[i],"123456789") then
for j=i+1 to l+1 do
if j>l or not find(s[j],"0123456789") then
for k=j-1-step to i by -step do
s[k+1..k] = sep
end for
exit
end if
end for
exit
end if
end for
printf(1,"%s\n",{s})
end procedure
commatize("pi=3.14159265358979323846264338327950288419716939937510582097494459231"," ",6,5)
commatize("The author has two Z$100000000000000 Zimbabwe notes (100 trillion).",".")
commatize("\"-in Aus$+1411.8millions\"")
commatize("===US$0017440 millions=== (in 2000 dollars)")
commatize("123.e8000 is pretty big.")
commatize("The land area of the earth is 57268900(29% of the surface) square miles.")
commatize("Ain't no numbers in this here words, nohow, no way, Jose.")
commatize("James was never known as 0000000007")
commatize("Arthur Eddington wrote: I believe there are 15747724136275002577605653961181555468044717914527116709366231425076185631031296 protons in the universe.")
commatize(" $-140000±100 millions.")
commatize("6/9/1946 was a good year for some.")