通过javascript / jquery删除/截断前导零
build议通过javascript,jquery从数字(任意string)中删除或截断前导零的解决scheme。
你可以使用一个正则expression式在string的开始处匹配零:
s = s.replace(/^0+/, '');
我会使用Number()函数:
var yourString = "00001"; yourString = Number(yourString).toString();
也许有点晚,但我想补充我的2美分。
如果你的string总是代表一个数字,可能前导零,你可以通过使用'+'运算符简单地将string转换为数字。
例如
x= "00005"; alert(typeof x); //"string" alert(x);// "00005" x = +x ; //or x= +"00005"; //do NOT confuse with x+=x, which will only concatenate the value alert(typeof x); //number , voila! alert(x); // 5 (as number)
如果你的string不代表一个数字,你只需要删除0的其他解决scheme,但如果你只需要他们作为数字,这是最短的方式。
和FYI你可以做相反的,如果你连接一个空string给他们强制数字作为string,如:
x = 5; alert(typeof x); //number x = x+""; alert(typeof x); //string
希望它有助于某人
既然你说“任何string”,我假设这也是你想要处理的string。
"00012 34 0000432 0035"
所以,正则expression式是要走的路:
var trimmed = s.replace(/\b0+/g, "");
这将防止“000000”值的丢失。
var trimmed = s.replace(/\b(0(?!\b))+/g, "")
你可以在这里看到一个工作的例子
我得到了这个解决scheme截断前导零(数字或任何string)在JavaScript中:
<script language="JavaScript" type="text/javascript"> <!-- function trimNumber(s) { while (s.substr(0,1) == '0' && s.length>1) { s = s.substr(1,9999); } return s; } var s1 = '00123'; var s2 = '000assa'; var s3 = 'assa34300'; var s4 = 'ssa'; var s5 = '121212000'; alert(s1 + '=' + trimNumber(s1)); alert(s2 + '=' + trimNumber(s2)); alert(s3 + '=' + trimNumber(s3)); alert(s4 + '=' + trimNumber(s4)); alert(s5 + '=' + trimNumber(s5)); // end hiding contents --> </script>
尝试这个,
function ltrim(str, chars) { chars = chars || "\\s"; return str.replace(new RegExp("^[" + chars + "]+", "g"), ""); } var str =ltrim("01545878","0");
更多在这里
您应该使用“parseInt”函数的“radix”参数: https : //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt? redirectlocale = en-US & redirectslug = JavaScript%2FReference %2FGlobal_Objects%2FparseInt
parseInt('015',10)=> 15
如果你不使用它,一些JavaScript引擎可能会使用它作为八进制parseInt('015')=> 0
parseInt(value) or parseFloat(value)
这将很好地工作。
如果数字是int使用
"" + parseInt(str)
如果号码是浮动使用
"" + parseFloat(str)
另一种方式没有正则expression式:
function trimLeadingZerosSubstr(str) { var xLastChr = str.length - 1, xChrIdx = 0; while (str[xChrIdx] === "0" && xChrIdx < xLastChr) { xChrIdx++; } return xChrIdx > 0 ? str.substr(xChrIdx) : str; }
短string将比正则expression式( jsperf )更快,