我需要一个正则表达式来替换点0之后且没有任何数字.的字符串中的所有零0-9。例如$2,305.690 ---> $2,305.69,20,345.690000 % ---> 20,345.69 %,345.609## ---> 345.609##,23.000-> 23,0.00-> 我尝试了此0,但引发了异常,可能是因为JavaScript不支持Lookbehinds。请提出一个JS正则表达式解决方案。 (adsbygoogle = window.adsbygoogle || []).push({}); 最佳答案 您可以使用\.(\d*?)0+(\D*)$如果组1的长度大于0,则用.$1$2替换,否则用$1$2替换。可以在回调函数中完成此操作(请参见下文)。正则表达式匹配:\.-小数点分隔符(文字.)(\d*?)-0或更多数字(捕获的组1-分隔符后到尾随零为止的所有数字),尽可能少0+-1个或多个零...(\D*)-后跟0个或多个非数字(捕获的组2)...$-字符串结尾之前(或多行模式下的行)var re = /\.(\d*?)0+(\D*)$/gm;var str = '$2,305.690\n ---> $2,305.69, \n20,345.690 %\n ---> 20,345.69 %, \n345.609##\n ---> 345.609##\n$2,305.000000\n --> $2,305\n0.000\n ---> 0';var result = str.replace(re, function(m, grp1, grp2) { return (grp1.length > 0 ? "." : "") + grp1 + grp2; });document.write(result.replace(/\n/g, '<br/>'));关于javascript - 正则表达式模式,用于替换字符串中小数点后的无用零,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32394949/ (adsbygoogle = window.adsbygoogle || []).push({});
10-09 12:34