chuỗi trông như thế nàyJavascript/Jquery - Nhận số từ chuỗi
"blabla blabla-5 amount-10 blabla direction-left"
Làm thế nào tôi có thể nhận được số lượng chỉ sau "amount-"
, và các văn bản chỉ sau "direction-"
?
chuỗi trông như thế nàyJavascript/Jquery - Nhận số từ chuỗi
"blabla blabla-5 amount-10 blabla direction-left"
Làm thế nào tôi có thể nhận được số lượng chỉ sau "amount-"
, và các văn bản chỉ sau "direction-"
?
này sử dụng regular expressions và exec method:
var s = "blabla blabla-5 amount-10 blabla direction-left";
var amount = parseInt(/amount-(\d+)/.exec(s)[1], 10);
var direction = /direction-([^\s]+)/.exec(s)[1];
Mã này sẽ gây ra một lỗi nếu số tiền hoặc hướng là mất tích; nếu điều này là có thể, hãy kiểm tra xem kết quả của exec là không null trước khi lập chỉ mục vào mảng sẽ được trả về.
cảm ơn bạn đó là nó :) – Alex
Bạn có thể sử dụng regexp như được giải thích by w3schools. Gợi ý:
str = "blabla blabla-5 amount-10 blabla direction-left"
alert(str.match(/amount-([0-9]+)/));
Otherwize bạn chỉ có thể muốn tất cả các số để sử dụng mẫu [0-9] +. str.match sẽ trả về một mảng.
Uh-oh http://w3fools.com/ –
này sẽ nhận được tất cả các số cách nhau bằng hôn mê:
var str = "10 is smaller than 11 but greater then 9"; var pattern = /[0-9]+/g; var matches = str.match(pattern);
Sau khi thực hiện, chuỗi matches
sẽ có giá trị "10,11,9"
Nếu bạn chỉ là tìm kiếm xuất hiện đầu tiên thew, mô hình sẽ /[0-9]+/
- sẽ trả lại 10
(Không cần JQuery)
Đây là cách hiệu quả nhất. Cảm ơn! –
Fol hạ thấp quy tắc nào? Trích xuất tất cả các số? Kết quả mong muốn, một mảng là gì? –
không, chỉ số/chuỗi sau các thông số đó. đầu ra phải là một chuỗi – Alex