Tôi có một hộp văn bản trong Javascript. Khi tôi nhập '0000.00'
vào hộp văn bản, tôi muốn biết cách chuyển đổi để chỉ có một số 0 đứng đầu, chẳng hạn như '0.00'
.Cắt bớt số 0 đầu của một chuỗi trong Javascript
Trả lời
Hãy thử điều này:
<input type="text" onblur="this.value=this.value.replace(/^0+(?=\d\.)/, '')">
var value= document.getElementById("theTextBoxInQuestion").value;
var number= parseFloat(value).toFixed(2);
Điều này có gây ra bất kỳ vấn đề gì nếu số lượng số không ở bên trái của số thập phân là rất lớn không? – Eric
Eric có điểm, nó sẽ chỉ hoạt động nếu bạn có một số 0 đứng đầu. Hơn thế nữa và thất bại. –
Có vẻ như bạn chỉ muốn loại bỏ số không hàng đầu, trừ khi có chỉ có một trái ("0" cho một số nguyên hoặc "0.xxx" cho một float, nơi x có thể là bất cứ điều gì).
này nên được tốt cho một vết cắt đầu tiên:
while (s.charAt(0) == '0') { # Assume we remove all leading zeros
if (s.length == 1) { break }; # But not final one.
if (s.charAt(1) == '.') { break }; # Nor one followed by '.'
s = s.substr(1, s.length-1)
}
Đây là một giải pháp tốt. Dựa vào các hàm dựng sẵn không phải lúc nào cũng là lựa chọn tốt nhất. Tôi sẽ biến điều này thành một hàm trợ giúp lấy một đối số chuỗi và trả về chuỗi đã định dạng. –
Hoạt động rất tốt đối với tôi. Tôi chỉ khuyên bạn nên thêm một đoạn mã để hỗ trợ các số âm (với "-" trong ký tự đầu tiên). – Gaston
giải pháp đơn giản hơn là như dưới đây. Kiểm tra điều này!
var resultString = document.getElementById("theTextBoxInQuestion")
.value
.replace(/^[0]+/g,"");
Bạn có thể sử dụng mã này:
<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>
str.replace(/^0+(?!\.|$)/, '')
'0000.00' --> '0.00'
'0.00' --> '0.00'
'00123.0' --> '123.0'
'0' --> '0'
Ok một giải pháp đơn giản. Vấn đề duy nhất là khi chuỗi là "0000.00" kết quả trong đồng bằng 0. Nhưng bên cạnh đó tôi nghĩ là một giải pháp mát mẻ.
var i = "0000.12";
var integer = i*1; //here's is the trick...
console.log(i); //0000.12
console.log(integer);//0.12
Đối với một số trường hợp tôi nghĩ rằng điều này có thể làm việc ...
- 1. Xóa/cắt bớt các số 0 đứng đầu bằng javascript/jquery
- 2. Chuỗi RODBC bị cắt bớt
- 3. cần phải cắt bớt 11 ký tự đầu tiên khỏi một chuỗi trong SQL
- 4. Cách tốt nhất để cắt bớt phần đầu của một tập tin trong C là gì?
- 5. Chuỗi từ mảng byte không được cắt bớt trong C#?
- 6. log4j cắt bớt stacktrace
- 7. Cắt một đường nhỏ .0
- 8. Cắt bất kỳ số 0 nào ở đầu chuỗi bằng cách sử dụng PHP
- 9. Cắt bớt khoảng trắng từ END của một chuỗi chỉ, với jQuery
- 10. Làm thế nào để cắt bớt một chuỗi để phù hợp trong một container?
- 11. Sử dụng Regex để tạo thành một số không có số 0 đứng đầu trong Javascript
- 12. Có thể cắt bớt đầu ra khi xem nội dung của các khung dữ liệu không?
- 13. Khách hàng Cắt bớt QueryString, gây FormatException
- 14. Entity Framework 4.0 Tự động cắt bớt/cắt chuỗi trước khi chèn
- 15. Cắt bớt một chuỗi độc đáo để vừa với chiều rộng pixel nhất định
- 16. Thuật toán để cắt các số 0 hàng đầu từ một trường SQL?
- 17. System.Net.HttpWebResponse.GetResponseStream() trả về nội dung bị cắt bớt trong WebException
- 18. Chữ số 0-số trong chuỗi
- 19. Cắt bớt đôi mà không làm tròn trong C
- 20. Trường Máy chủ SQL bị cắt bớt
- 21. Làm thế nào để cắt bớt một bảng bằng Doctrine?
- 22. Cột văn bản MySQL bị cắt bớt
- 23. XmlDocument.WriteĐể cắt bớt tập tin kết quả
- 24. Cắt bớt danh sách thành một số yếu tố nhất định
- 25. Chèn các số 0 vào một chuỗi
- 26. Làm cách nào để ngăn chặn dbms_output.put_line khỏi việc cắt bớt khoảng trắng hàng đầu?
- 27. Sử dụng hibernate/hql để cắt bớt một bảng?
- 28. Làm cách nào để Cắt dấu phẩy đầu tiên trong chuỗi của tôi
- 29. Văn bản nhãn UIButton đang được cắt bớt
- 30. Net Loại bỏ tất cả các đầu 0 của một chuỗi
Cần làm rõ những gì một "chuỗi" là. Nếu "chuỗi" của bạn là số thập phân thì câu trả lời sẽ khác với "chuỗi" của bạn là chuỗi văn bản. "00000.000" -> "0,000" sẽ là một chuyển đổi thập phân. "000TXT10001" -> "0TXT10001" sẽ yêu cầu chức năng cắt. Ví dụ bạn mong đợi gì khi đầu vào là "0011.1100" -> "011.1100" hoặc "11.11"? – ChronoFish