Hướng dẫn remove space and special characters javascript - xóa dấu cách và ký tự đặc biệt javascript

Tôi muốn loại bỏ tất cả các ký tự và không gian đặc biệt khỏi một chuỗi và thay thế bằng dấu gạch dưới. Chuỗi là

    var str = "hello world & hello universe";

Tôi có cái này bây giờ chỉ thay thế không gian:

      str.replace[/\s/g, "_"];

Kết quả tôi nhận được là hello_world_&_hello_universe, nhưng tôi cũng muốn xóa các biểu tượng đặc biệt.

Tôi đã thử điều này str.replace[/[^a-zA-Z0-9]\s/g, "_"] nhưng điều này không giúp ích gì.

Hỏi ngày 22 tháng 10 năm 2012 lúc 21:34Oct 22, 2012 at 21:34

Biểu thức thông thường của bạn [^a-zA-Z0-9]\s/g nói rằng khớp với bất kỳ ký tự nào không phải là số hoặc chữ cái theo sau là một không gian.

Xóa các \ s và bạn nên có được những gì bạn đang có nếu bạn muốn một _ cho mọi nhân vật đặc biệt.

var newString = str.replace[/[^A-Z0-9]/ig, "_"];

Điều đó sẽ dẫn đến hello_world___hello_universe

Nếu bạn muốn nó là một dấu gạch dưới, hãy sử dụng A + để khớp với nhiều

var newString = str.replace[/[^A-Z0-9]+/ig, "_"];

Điều đó sẽ dẫn đến hello_world_hello_universe

Đã trả lời ngày 22 tháng 10 năm 2012 lúc 21:36Oct 22, 2012 at 21:36

Epascarelloepascarelloepascarello

200K20 Huy hiệu vàng189 Huy hiệu bạc230 Huy hiệu Đồng20 gold badges189 silver badges230 bronze badges

3

Nó không được yêu cầu chính xác để loại bỏ giọng nói [chỉ các ký tự đặc biệt], nhưng tôi cần.

Các giải pháp givens ở đây hoạt động nhưng họ không loại bỏ giọng nói: é, è, v.v.

Vì vậy, trước khi thực hiện giải pháp Epascarello, bạn cũng có thể làm:

var newString = "développeur & intégrateur";

newString = replaceAccents[newString];
newString = newString.replace[/[^A-Z0-9]+/ig, "_"];
alert[newString];

/**
 * Replaces all accented chars with regular ones
 */
function replaceAccents[str] {
  // Verifies if the String has accents and replace them
  if [str.search[/[\xC0-\xFF]/g] > -1] {
    str = str
      .replace[/[\xC0-\xC5]/g, "A"]
      .replace[/[\xC6]/g, "AE"]
      .replace[/[\xC7]/g, "C"]
      .replace[/[\xC8-\xCB]/g, "E"]
      .replace[/[\xCC-\xCF]/g, "I"]
      .replace[/[\xD0]/g, "D"]
      .replace[/[\xD1]/g, "N"]
      .replace[/[\xD2-\xD6\xD8]/g, "O"]
      .replace[/[\xD9-\xDC]/g, "U"]
      .replace[/[\xDD]/g, "Y"]
      .replace[/[\xDE]/g, "P"]
      .replace[/[\xE0-\xE5]/g, "a"]
      .replace[/[\xE6]/g, "ae"]
      .replace[/[\xE7]/g, "c"]
      .replace[/[\xE8-\xEB]/g, "e"]
      .replace[/[\xEC-\xEF]/g, "i"]
      .replace[/[\xF1]/g, "n"]
      .replace[/[\xF2-\xF6\xF8]/g, "o"]
      .replace[/[\xF9-\xFC]/g, "u"]
      .replace[/[\xFE]/g, "p"]
      .replace[/[\xFD\xFF]/g, "y"];
  }

  return str;
}

Nguồn: //gist.github.com/jonlabelle/5375315

Đã trả lời ngày 7 tháng 7 năm 2018 lúc 12:15Jul 7, 2018 at 12:15

Hủy bỏ

      str.replace[/\s/g, "_"];
0 khỏi Regex mới của bạn và nó sẽ hoạt động - khoảng trắng đã được bao gồm trong "Bất cứ thứ gì ngoại trừ chữ số".

Lưu ý rằng bạn có thể muốn thêm một

      str.replace[/\s/g, "_"];
1 sau
      str.replace[/\s/g, "_"];
2 để bạn không nhận được các chuỗi nhiều hơn một dấu gạch dưới. Bạn cũng có thể xâu chuỗi trên
      str.replace[/\s/g, "_"];
3 để cắt giảm dấu gạch dưới khi bắt đầu hoặc kết thúc chuỗi.

Đã trả lời ngày 22 tháng 10 năm 2012 lúc 21:36Oct 22, 2012 at 21:36

2

Epascarelloepascarello

200K20 Huy hiệu vàng189 Huy hiệu bạc230 Huy hiệu ĐồngsampleText ="ä_öü_ßÄ_ TESTED Ö_Ü!@#$%^&[]][&&++===.XYZ"

Nó không được yêu cầu chính xác để loại bỏ giọng nói [chỉ các ký tự đặc biệt], nhưng tôi cần.

Các giải pháp givens ở đây hoạt động nhưng họ không loại bỏ giọng nói: é, è, v.v.

Vì vậy, trước khi thực hiện giải pháp Epascarello, bạn cũng có thể làm: = sampleText.replace[/[`~!@#$%^&*[]|+-=?;:'",.{}[]\/\s]/gi,''];

Nguồn: //gist.github.com/jonlabelle/5375315 sampleText = "ä_öü_ßÄ____TESTED_Ö_Ü_____________________XYZ"

Đã trả lời ngày 7 tháng 7 năm 2018 lúc 12:15

Hủy bỏ

      str.replace[/\s/g, "_"];
0 khỏi Regex mới của bạn và nó sẽ hoạt động - khoảng trắng đã được bao gồm trong "Bất cứ thứ gì ngoại trừ chữ số".Nov 23, 2018 at 7:40

Lưu ý rằng bạn có thể muốn thêm một

      str.replace[/\s/g, "_"];
1 sau
      str.replace[/\s/g, "_"];
2 để bạn không nhận được các chuỗi nhiều hơn một dấu gạch dưới. Bạn cũng có thể xâu chuỗi trên
      str.replace[/\s/g, "_"];
3 để cắt giảm dấu gạch dưới khi bắt đầu hoặc kết thúc chuỗi.Sitaram

Nếu bạn có một văn bản là9 silver badges12 bronze badges

var sampletext = "ä_öü_ßä_ đã kiểm tra Ö_ü!@#$%^& []] [&& ++ ===. XYZ"

Để thay thế tất cả các ký tự đặc biệt [!@#$%^& []] [&& ++ = ==.] Không thay thế các ký tự [bao gồm cả Umlaut]

Sử dụng bên dưới Regex

sampletext = sampletext.replace [/[`~!@#$%^&*[] |+-=?;: '",. {} [] \/\ s]/gi,' '];

Đầu ra: SamppletExt = "

Điều này sẽ thay thế tất cả bằng một dấu gạch dưới được cung cấp dưới dạng đối số thứ hai cho hàm thay thế. Bạn có thể thêm bất cứ điều gì bạn muốn theo yêu cầu của bạnOct 14, 2019 at 5:24

Bài Viết Liên Quan

Chủ Đề