Nếu tôi có chuỗi như "something12" hoặc "something102", tôi sẽ sử dụng regex bằng javascript như thế nào để chỉ trả về các phần số?Regex sử dụng javascript để chỉ trả về số
Trả lời
Regular expressions:
var numberPattern = /\d+/g;
'something102asdfkj1948948'.match(numberPattern)
này sẽ trả về một đối tượng với hai yếu tố bên trong, '102' và '1.948.948. Hoạt động như bạn muốn. Nếu nó không phù hợp với bất kỳ nó sẽ trả về null.
Giả sử bạn không xử lý các số thập phân phức tạp, điều này là đủ, tôi cho là vậy.
Tôi đoán bạn muốn lấy (các) số từ chuỗi. Trong trường hợp này, bạn có thể sử dụng như sau:
// Returns an array of numbers located in the string
function get_numbers(input) {
return input.match(/[0-9]+/g);
}
var first_test = get_numbers('something102');
var second_test = get_numbers('something102or12');
var third_test = get_numbers('no numbers here!');
alert(first_test); // [102]
alert(second_test); // [102,12]
alert(third_test); // null
Chỉ cần làm rõ, 'get_numbers/1' trả về một mảng của chuỗi, không phải số. Ví dụ của bạn, nó sẽ trả lại: * '[" 102 "]' * '[" 102 "," 12 "]' * null – sntran
Bạn cũng có thể gỡ bỏ tất cả các ký tự không phải chữ số (\D
hoặc [^0-9]
):
'abc123cdef4567hij89'.replace(/\D/g, '');
// returns '123456789'
Những câu trả lời cho không thực sự phù hợp với câu hỏi của bạn , ngụ ý số trailing. Ngoài ra, hãy nhớ rằng bạn đang nhận được một chuỗi trở lại; nếu bạn thực sự cần một số, đúc kết quả:
item=item.replace('^.*\D(\d*)$', '$1');
if (!/^\d+$/.test(item)) throw 'parse error: number not found';
item=Number(item);
Nếu bạn đang làm việc với id mục số trên một trang web, mã của bạn cũng có thể hữu ích chấp nhận một Element
, chiết xuất từ số của nó id
(hoặc cha mẹ đầu tiên của nó với số id
); nếu bạn có tiện ích Event
, bạn cũng có thể nhận được số Element
từ đó.
var result = input.match(/\d+/g).join([])
Nếu bạn muốn chỉ số:
var value = '675-805-714';
var numberPattern = /\d+/g;
value = value.match(numberPattern).join([]);
alert(value);
//Show: 675805714
Bây giờ bạn sẽ có được các chữ số tham gia
Đối với số với phần thập phân và dấu trừ, tôi sử dụng đoạn mã này:
var NUMERIC_REGEXP = /[-]{0,1}[\d]*[\.]{0,1}[\d]+/g;
'2.2px 3.1px 4px -7.6px obj.key'.match(NUMERIC_REGEXP)
// return ["2.2", "3.1", "4", "-7.6"]
Cập nhật:
Tôi đã tìm thấy công cụ cho phép bạn chỉnh sửa biểu thức chính quy một cách trực quan: JavaScript Regular Expression Parser & Visualizer.
Cập nhật:
Dưới đây là một số khác mà bạn thậm chí có thể gỡ rối regexp: Online regex tester and debugger.
Cập nhật:
Một số khác: Regexpal.
Giải pháp hoàn hảo duy nhất hoạt động với số thập phân và số âm – ArmaGeddON
Cảm ơn, @ ArmaGeddON, hy vọng nó có thể giúp nhiều người hơn. –
có vẻ như điều này sẽ khớp với những thứ như 0.0.0. Hãy thử di chuyển. bên ngoài khung như thế này [-] {0,1} [\ d] * [\.] {0,1} [\ d] + – Makolyte
- 1. Sử dụng giá trị trả về của khối trong JavaScript
- 2. get_categories() chỉ trả về các danh mục đang sử dụng
- 3. Sử dụng Regex để tạo thành một số không có số 0 đứng đầu trong Javascript
- 4. Sử dụng ValueConverter để trả về StaticResource
- 5. assign hàm trả về giá trị cho một số biến sử dụng javascript
- 6. Argmax mảng numpy trả về các chỉ số không phẳng
- 7. Mô tả để chỉ trả về ClassName?
- 8. javax.servlet.HttpServletRequest.getContentLength() trả về int chỉ
- 9. Sử dụng grep để báo cáo chỉ số dòng
- 10. Regex chỉ xác thực số tự nhiên?
- 11. getLocationOnScreen() trong onCreate() chỉ trả về số 0
- 12. Thay thế dòng mới/trả về bằng không gian bằng cách sử dụng regex
- 13. Nguyên lý std :: vector :: push_back() và chỉ số trả về
- 14. Phép trừ lubridate chỉ trả về giá trị số
- 15. Sử dụng regex để trích xuất nhiều số từ chuỗi
- 16. Sử dụng SQL để trả về một chuỗi JSON
- 17. Android - Sử dụng WebView để đánh giá chuỗi javascript và trả về giá trị
- 18. JavaScript cho sự khác biệt về chỉ số vòng lặp
- 19. số điện thoại Normalize sử dụng regex
- 20. Egrep/Sed: chỉ trả về kết quả regex, không phải toàn bộ dòng
- 21. Sử dụng nếu ... khác ... hoặc chỉ khi ... để xác định số tiền được trả lại
- 22. Sử dụng javascript/jquery để quay số
- 23. Set số đề sử dụng omp_set_num_threads() để 2, nhưng omp_get_num_threads() trả về 1
- 24. Thay đổi trường hợp bằng cách sử dụng Javascript regex
- 25. ArrayList indexOf() trả về chỉ mục sai?
- 26. Chức năng 'for-in' của Javascript có trả về chỉ một chỉ mục không?
- 27. Xóa số khỏi chuỗi bằng cách sử dụng Javascript
- 28. javascript cú pháp cho regex sử dụng biến như mẫu
- 29. Làm cách nào để đặt biến số javascript cho hàm trả về của hàm nội tuyến?
- 30. Bắt tất cả các thông số URL sử dụng regex
err. ghét phải là kẻ ngốc nghếch, nhưng điều này trả về một mảng, không phải là một đối tượng (ít nhất là trong chrome). – Maus
Tất cả các mảng là đối tượng mặc dù, không? –
làm thế nào về 'parseInt (chuỗi);' –