Làm thế nào để loại bỏ văn bản từ một chuỗi?


577

Tôi đã có một data-123chuỗi.

Làm thế nào tôi có thể loại bỏ data-khỏi chuỗi trong khi rời khỏi 123?

Câu trả lời:


1157

var ret = "data-123".replace('data-','');
console.log(ret);   //prints: 123

Tài liệu.


Đối với tất cả các lần xuất hiện được loại bỏ sử dụng:

var ret = "data-123".replace(/data-/g,'');

PS: Hàm thay thế trả về một chuỗi mới và giữ nguyên chuỗi gốc, vì vậy hãy sử dụng giá trị trả về của hàm sau lệnh gọi thay thế ().


Làm thế nào để thay thế nhiều biểu thức? Bạn có phải sử dụng nhiều cuộc gọi .replace không?
Dror Bar

124

Điều này không có gì để làm với jQuery. Bạn có thể sử dụng replacechức năng JavaScript cho việc này:

var str = "data-123";
str = str.replace("data-", "");

Bạn cũng có thể truyền regex cho hàm này. Trong ví dụ sau, nó sẽ thay thế mọi thứ trừ số:

str = str.replace(/[^0-9\.]+/g, "");

Bạn có thể giải thích những gì regex làm? Tôi không hiểu tại sao nó thay thế chuỗi trừ số nếu 0-9được chỉ định.
rotimi-best

60

Bạn có thể sử dụng "data-123".replace('data-','');, như đã đề cập, nhưng replace()chỉ thay thế phiên bản FIRST của văn bản phù hợp, nếu chuỗi của bạn giống như "data-123data-"sau đó

"data-123data-".replace('data-','');

sẽ chỉ thay thế văn bản phù hợp đầu tiên. Và đầu ra của bạn sẽ là"123data-"

BẢN GIỚI THIỆU

Vì vậy, nếu bạn muốn thay thế tất cả các kết quả khớp của văn bản trong chuỗi, bạn phải sử dụng biểu thức chính quy với gcờ như thế:

"data-123data-".replace(/data-/g,'');

Và đầu ra của bạn sẽ là "123"

DEMO2


28

bạn có thể sử dụng lát () nó giữ lại các ký tự từ đầu đến cuối (bao gồm điểm cuối)

   string.slice(start , end);

Đây là một số exmp để hiển thị cách nó hoạt động:

var mystr = ("data-123").slice(5); // jast define start point so output is "123"
var mystr = ("data-123").slice(5,7); // define start and end  so output is "12"
var mystr=(",246").slice(1); // returens "246"

Bản giới thiệu


23

JavaScript cũ đơn giản sẽ đủ - jQuery không cần thiết cho một tác vụ đơn giản như vậy:

var myString = "data-123";
var myNewString = myString.replace("data-", "");

Xem: .replace()tài liệu trên MDN để biết thêm thông tin và sử dụng.


17

Ví dụ:-

var value="Data-123";
var removeData=value.replace("Data-","");
alert(removeData);

Hy vọng điều này sẽ làm việc cho bạn.


11

Tôi đã quen với phương thức String.Remove của C # (Sharp). Trong Javascript, không có chức năng loại bỏ cho chuỗi, nhưng có chức năng cơ sở. Bạn có thể sử dụng hàm đế một hoặc hai lần để xóa các ký tự khỏi chuỗi. Bạn có thể thực hiện chức năng sau để xóa các ký tự ở chỉ mục bắt đầu đến cuối chuỗi, giống như phương thức c # đầu tiên quá tải String.Remove (int start Index):

function Remove(str, startIndex) {
    return str.substr(0, startIndex);
}

và / hoặc bạn cũng có thể tạo hàm sau để xóa các ký tự ở chỉ mục bắt đầu và đếm, giống như phương thức thứ hai của phương thức c # String.Remove (int start Index, int Count):

function Remove(str, startIndex, count) {
    return str.substr(0, startIndex) + str.substr(startIndex + count);
}

và sau đó bạn có thể sử dụng hai chức năng này hoặc một trong số chúng cho nhu cầu của bạn!

Thí dụ:

alert(Remove("data-123", 0, 5));

Đầu ra: 123


9

Chức năng nhỏ này tôi đã thực hiện luôn luôn làm việc cho tôi :)

String.prototype.deleteWord = function (searchTerm) {
    var str = this;
    var n = str.search(searchTerm);
    while (str.search(searchTerm) > -1) {
        n = str.search(searchTerm);
        str = str.substring(0, n) + str.substring(n + searchTerm.length, str.length);
    }
    return str;
}

// Use it like this:
var string = "text is the the cool!!";
string.deleteWord('the'); // Returns text is cool!!

Tôi biết nó không phải là tốt nhất, nhưng nó luôn làm việc cho tôi :)


Bạn đang thể hiện trong câu trả lời của mình cách chức năng thay thế của chuỗi hoạt động nhiều hay ít, nhưng thực sự chỉ cần sử dụng chức năng thay thế của chuỗi thì mã đơn giản hơn và dễ dàng hơn nhiều!

9
str.split('Yes').join('No'); 

Điều này sẽ thay thế tất cả các lần xuất hiện của chuỗi cụ thể đó từ chuỗi ban đầu.


8

Sử dụng match()Number()trả về một numberbiến:

Number(("data-123").match(/\d+$/));

// strNum = 123

Đây là những gì tuyên bố ở trên ... làm việc giữa chừng:

  1. str.match(/\d+$/)- trả về một mảng chứa các kết quả khớp với bất kỳ độ dài nào của số ở cuối str. Trong trường hợp này, nó trả về một mảng chứa một mục chuỗi ['123'].
  2. Number()- chuyển đổi nó thành một loại số. Bởi vì mảng được trả về từ .match()chứa một phần tử Number()sẽ trả về số.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.