Đề xuất giải pháp loại bỏ hoặc cắt bớt số 0 đứng đầu khỏi số (bất kỳ chuỗi nào) bằng javascript, jquery.Xóa/cắt bớt các số 0 đứng đầu bằng javascript/jquery
Trả lời
Bạn có thể sử dụng một biểu thức chính quy phù hợp với zero vào đầu chuỗi:
s = s.replace(/^0+/, '');
@SomnathMuluk: điều đó sẽ gây bất ngờ cho rất nhiều lập trình viên javascript! – Bert
@Guffa: Tôi đang sử dụng nó trong mã jquery .. có thể là do nó có thể không hoạt động. –
@Somnath, jQuery IS javascript. Nếu một cái gì đó hoạt động trong javascript nó sẽ tiếp tục hoạt động nếu bạn cũng đang sử dụng jQuery. –
Hãy thử điều này,
function ltrim(str, chars) {
chars = chars || "\\s";
return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
var str =ltrim("01545878","0");
More here
nó đang gặp vấn đề đối với chuỗi giá trị được đưa ra –
@SomnathMuluk: vấn đề gì. đây là ví dụ làm việc http://jsfiddle.net/AxeUU/ – Gowri
Vì bạn nói "bất kỳ chuỗi" , Tôi giả định đây là một chuỗi bạn muốn xử lý, quá.
"00012 34 0000432 0035"
Vì vậy, regex là con đường để đi:
var trimmed = s.replace(/\b0+/g, "");
Và điều này sẽ ngăn chặn sự mất mát của một giá trị "000000".
var trimmed = s.replace(/\b(0(?!\b))+/g, "")
Bạn có thể thấy một working example here
+1, câu trả lời tuyệt vời –
tôi có giải pháp này cho cắt bỏ số không hàng đầu (số hay bất kỳ chuỗi) trong 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>
Đó không phải là mã rất tốt. Việc kiểm tra độ dài chuỗi là hoàn toàn siêu, nó sẽ không bao giờ được đánh giá thành 'false'. Việc sử dụng '9999' làm tham số thứ hai cho' substr' là không cần thiết. Chỉ cần sử dụng 'while (s.substr (0,1) == '0') s = s.substr (1);'. Bên cạnh đó, đoạn mã đó trông thực sự cũ, thuộc tính 'language' của thẻ' script' đã không còn được dùng trong một thời gian dài và việc sử dụng các nhận xét bên trong thẻ 'script' chỉ cần cho các trình duyệt không hiểu' script' ở tất cả, ví dụ Internet Explorer 1.0. – Guffa
Nó đang làm việc tốt cho tôi .... – Avinash
Bạn nên sử dụng "radix" tham số của chức năng "parseInt": 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
nếu bạn không sử dụng nó, một số động cơ javascript có thể sử dụng nó như một bát phân parseInt ('015') => 0
lẽ muộn một chút, nhưng tôi muốn thêm 2 cent của tôi.
nếu chuỗi của bạn LUÔN đại diện cho một số, với số 0 đứng đầu có thể, bạn có thể chỉ cần truyền chuỗi đến một số bằng cách sử dụng toán tử '+'.
ví dụ:
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)
nếu chuỗi của bạn không đại diện cho số và bạn chỉ cần xóa 0 sử dụng các giải pháp khác, nhưng nếu bạn chỉ cần số 0 thì đây là cách ngắn nhất.
và FYI bạn có thể làm, số lực lượng đối lập để hoạt động như chuỗi nếu bạn nối một chuỗi rỗng đối với họ, như:
x = 5;
alert(typeof x); //number
x = x+"";
alert(typeof x); //string
hy vọng nó sẽ giúp ai đó
Tôi sẽ sử dụng Number () chức năng:
var yourString = "00001";
yourString = Number(yourString).toString();
nó sẽ không hoạt động với giá trị lớn hơn 2^53. Số ("009007199254740993"). ToString() sẽ là "9007199254740992" – madreason
câu trả lời hoàn hảo !!! cố gắng thêm một số giải thích thêm :) – SagarPPanchal
parseInt(value) or parseFloat(value)
này sẽ làm việc độc đáo.
Nếu số là int sử dụng
"" + parseInt(str)
Nếu số là sử dụng phao
"" + parseFloat(str)
Một cách khác mà không regex:
function trimLeadingZerosSubstr(str) {
var xLastChr = str.length - 1, xChrIdx = 0;
while (str[xChrIdx] === "0" && xChrIdx < xLastChr) {
xChrIdx++;
}
return xChrIdx > 0 ? str.substr(xChrIdx) : str;
}
Với chuỗi ngắn nó sẽ nhanh hơn nhiều so với regex (jsperf)
- 1. Các số 0 đứng đầu khi in nổi bằng printf?
- 2. Đếm số 0 đứng đầu trong Int32
- 3. In số 0 đứng đầu trong C?
- 4. Cắt bớt số 0 đầu của một chuỗi trong Javascript
- 5. Java thêm số 0 đứng đầu vào số
- 6. Tôi làm cách nào để hiển thị thời gian bằng các số 0 đứng đầu?
- 7. hiển thị số 0 đứng đầu trong một gtk.SpinButton
- 8. Ngày PHP(): phút mà không có số 0 đứng đầu
- 9. Ruby strftime: Tháng không có số 0 đứng đầu?
- 10. Tháng không có số 0 đứng đầu trong Android
- 11. NSString bằng cách loại bỏ các số 0 ban đầu?
- 12. Xử lý các số có số 0 đứng đầu trong Tcl
- 13. Cụm từ thông dụng cho các số không có số 0 đứng đầu
- 14. Chuyển đổi int (số) thành chuỗi có số 0 đứng đầu? (4 chữ số)
- 15. Các số 0 đứng đầu trên plugin Đồng hồ đếm ngược JQuery
- 16. Làm thế nào tôi có thể xuất các số 0 đứng đầu trong Ruby?
- 17. Toàn văn SQL Server không tính các số 0 đứng đầu trong tài khoản
- 18. Sử dụng Regex để tạo thành một số không có số 0 đứng đầu trong Javascript
- 19. Làm thế nào để phpexcel giữ số 0 đứng đầu trong số điện thoại?
- 20. Chuyển đổi thành nhị phân và giữ số 0 đứng đầu trong Python
- 21. Tập lệnh shell Linux để thêm số 0 đứng đầu vào tên tệp
- 22. Xóa số 0 đứng đầu từ ngày viết tắt với PHP
- 23. Làm cách nào để định dạng chuỗi Java có số 0 đứng đầu?
- 24. CSV cho Excel, Bao gồm cả số 0 và số 0 hàng đầu
- 25. Làm cách nào để chuyển đổi số nguyên thành chuỗi có số 0 đứng đầu trong Tcl?
- 26. Số nguyên với số 0 hàng đầu
- 27. Làm cách nào để in số thập lục phân có số 0 đứng đầu để có chiều rộng 2 bằng sprintf?
- 28. SSAS đứng đầu ở đâu?
- 29. Tại sao parseInt() trả về kết quả không mong đợi khi tôi chuyển một chuỗi có số 0 đứng đầu?
- 30. Chèn JSTL với các số 0 hàng đầu
điều gì sẽ xảy ra khi chuỗi là "000000000" – robert
Số có được mong đợi là số nguyên luôn hay không, hoặc số đó sẽ xử lý các số có số thập phân (ví dụ: ''00000.5'')? – CMS
nó sẽ cung cấp cho công việc cho bất kỳ chuỗi nào được cung cấp. tức là "00000evsdd" phải cung cấp "evsdd", "00000.5" sẽ cung cấp ".5" –