Tôi gặp sự cố khi tạo cụm từ thông dụng có thể tách ra các số 0 đứng đầu từ các số được biểu thị dưới dạng chuỗi. Xin lỗi nhưng parseFloat không phải là những gì tôi đang tìm kiếm vì tôi sẽ xử lý các số có hơn 30 chữ số thập phân.Sử dụng Regex để tạo thành một số không có số 0 đứng đầu trong Javascript
biểu thức chính quy hiện tại của tôi là
/(?!-)?(0+)/;
Dưới đây là các trường hợp thử nghiệm của tôi. http://jsfiddle.net/j9mxd/1/
$(function() {
var r = function(val){
var re = /(?!-)?(0+)/;
return val.toString().replace(re, '');
};
test("positive", function() {
equal(r("000.01"), "0.01");
equal(r("00.1"), "0.1");
equal(r("010.01"), "10.01");
equal(r("0010"), "10");
equal(r("0010.0"), "10.0");
equal(r("10010.0"), "10010.0");
});
test("negative", function() {
equal(r("-000.01"), "-0.01");
equal(r("-00.1"), "-0.1");
equal(r("-010.01"), "-10.01");
equal(r("-0010"), "-10");
equal(r("-0010.0"), "-10.0");
equal(r("-10010.0"), "-10010.0");
});
});
Tại sao các trường hợp thử nghiệm của tôi không được chuyển?
Vui lòng cung cấp một số cái nhìn sâu sắc vào những gì đang thực sự xảy ra sai lầm, và hỏi một câu hỏi thực tế có thể không làm tổn thương một trong hai. –
Câu hỏi đặt ra là "tại sao các bài kiểm tra của tôi không vượt qua?" –
Tất cả chúng? OK ... –