Tôi có một chuỗi mà trông giống nhưjavascript trận chuỗi sau regexp
something30-mr200
Tôi muốn để có được tất cả mọi thứ sau khi mr
(về cơ bản # tiếp theo mr) * luôn có được sẽ là -mr
Bất kỳ trợ giúp nào cũng sẽ đánh giá cao điều đó.
Tôi có một chuỗi mà trông giống nhưjavascript trận chuỗi sau regexp
something30-mr200
Tôi muốn để có được tất cả mọi thứ sau khi mr
(về cơ bản # tiếp theo mr) * luôn có được sẽ là -mr
Bất kỳ trợ giúp nào cũng sẽ đánh giá cao điều đó.
Điều gì về việc tìm vị trí của -mr, sau đó nhận chuỗi con từ đó + 3?
Nó không phải là regex, nhưng có vẻ như đã làm việc cho mô tả của bạn?
var result = "something30-mr200".split("mr")[1];
hoặc
var result = "something30-mr200".match(/mr(.*)/)[1];
Tại sao không chỉ đơn giản là:
-mr(\d+)
Sau đó nhận được các nội dung của nhóm chụp?
gì về:
function getNumber(input) { // rename with a meaningful name
var match = input.match(/^.*-mr(\d+)$/);
if (match) { // check if the input string matched the pattern
return match[1]; // get the capturing group
}
}
getNumber("something30-mr200"); // "200"
Bạn có thể sử dụng một regexp như một Bart đã cho bạn, nhưng tôi đề nghị sử dụng phù hợp chứ không phải là thay thế, vì trong trường hợp một trận đấu không được tìm thấy, kết quả là toàn bộ chuỗi khi sử dụng thay thế, trong khi null khi sử dụng kết hợp, điều này có vẻ hợp lý hơn. (như một tổng thể mặc dù).
Something như thế này sẽ làm các trick:
functiong getNumber(string) {
var matches = string.match(/-mr([0-9]+)/);
return matches[1];
}
getNumber("something30-mr200");
Điều này có thể làm việc cho bạn.
// Perform the reg exp test
new RegExp(".*-mr(\d+)").test("something30-mr200");
// result will equal the value of the first subexpression
var result = RegExp.$1;
Không cần phải bao gồm '. *' Đầu tiên và dấu gạch ngang không cần thoát. Điều này cũng hoạt động: '" -mr (. *) "'. Nhưng '. *' Là nguy hiểm: nếu có nhiều văn bản hơn sau khi '" -mr "' thì '. *' Sẽ "ăn" nó. Tất nhiên, OP không thực sự rõ ràng về những gì văn bản có thể đến sau khi '" -mr "'. –
Đó là một điểm tốt. Tôi đã giả định rằng OP sẽ muốn mọi thứ sau "-mr". Tôi đã sửa đổi mã để xóa lối thoát trước dấu gạch nối và hạn chế biểu thức con thành chữ số. Tôi thoát khỏi mọi thứ từ thói quen hơn bất cứ thứ gì khác. :) –
Bạn quên đóng chuỗi '" mr' –
Cảm ơn, bây giờ cố định – Kamarey