Tôi có một chuỗi trong đó tôi cần phải thay thế tất cả các ký tự đặc biệt "~! @ # $%^& *() _ + =` {} [] | :; ' <>,. /? " và không gian với dấu gạch nối. Nhiều ký tự đặc biệt trong một hàng sẽ dẫn đến một dấu nối đơn.Regex để thay thế tất cả các ký tự đặc biệt và dấu cách trong chuỗi bằng dấu gạch nối
var mystring="Need [email protected]#$%^\" to /replace this*(){}{}|\><? with_new string ";
// desired output: "Need-to-replace-this-with-new-string"
Hiện nay, tôi đang sử dụng loạt bài này của replace()
cuộc gọi:
return mystring.replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '-').replace(/\//g, "-");
Nhưng nó xuất ra này:
Need----------to/replace-this--------with-new-string;
nơi nó thêm một gạch nối cho mỗi ký tự đặc biệt trong chuỗi ngoại trừ dấu gạch chéo.
Xác định 'tất cả các ký tự đặc biệt' là tất cả các ký tự không phải là chữ và số không? Một tập hợp con của những người đó? Tại * rất * ít nhất bạn có thể gửi một chuỗi đầu vào ví dụ và chuỗi đầu ra, mà không có các hướng dẫn/yêu cầu có mặt trong một trong hai chuỗi không? Nó làm cho nó rất khó hiểu và cố gắng đọc/hiểu. –
ký tự cần xóa "~! @ # $%^& *() _ + =' {} [] | \ :; '<>,. /? " và không gian và tất cả những thứ này nên được thay thế bằng dấu gạch nối, chuỗi là chữ số và số – user2643287
Tất cả đều có dấu gạch ngang * đơn * ở những vị trí xuất hiện, hoặc với dấu gạch nối cho * mỗi ký tự * được thay thế? –