Tôi đang cố gắng tìm ra biểu thức chính quy sẽ khớp với bất kỳ ký tự nào không phải là chữ cái hoặc số. Vì vậy, các ký tự như (,, @, £, (), v.v.
Sau khi tìm thấy, tôi muốn thay thế nó bằng một khoảng trống.
Mọi lời khuyên.
Tôi đang cố gắng tìm ra biểu thức chính quy sẽ khớp với bất kỳ ký tự nào không phải là chữ cái hoặc số. Vì vậy, các ký tự như (,, @, £, (), v.v.
Sau khi tìm thấy, tôi muốn thay thế nó bằng một khoảng trống.
Mọi lời khuyên.
Câu trả lời:
Để khớp với bất kỳ thứ gì khác ngoài chữ cái hoặc số, bạn có thể thử cách này:
[^a-zA-Z0-9]
Và để thay thế:
var str = 'dfj,dsf7lfsd .sdklfj';
str = str.replace(/[^A-Za-z0-9]/g, ' ');
Biểu thức chính quy này khớp với bất kỳ thứ gì không phải là chữ cái, chữ số hoặc _
ký tự gạch dưới ( ).
\W
Ví dụ trong JavaScript:
"(,,@,£,() asdf 345345".replace(/\W/g, ' '); // Output: " asdf 345345"
Bạn đang tìm kiếm:
var yourVar = '1324567890abc§$)%';
yourVar = yourVar.replace(/[^a-zA-Z0-9]/g, ' ');
Điều này thay thế tất cả các ký tự không phải chữ và số bằng một khoảng trắng.
Chữ "g" ở cuối thay thế tất cả các lần xuất hiện.
Thay vì quy định cụ thể az (chữ thường) và AZ (chữ hoa), bạn cũng có thể sử dụng trong trường hợp nhạy cảm tùy chọn: /[^a-z0-9]/gi
.
Đây là cách quá muộn, nhưng vì không có câu trả lời nào được chấp nhận nên tôi muốn cung cấp câu trả lời mà tôi nghĩ là đơn giản nhất: \ D - khớp với tất cả các ký tự không phải chữ số.
var x = "123 235-25%";
x.replace(/\D/g, '');
Kết quả bằng x: "12323525"
Xem https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
thử làm str.replace (/ [^ \ w] /); Nó sẽ thay thế tất cả các bảng chữ cái và số không phải từ chuỗi của bạn!
Chỉnh sửa 1: str.replace(/[^\w]/g, ' ')
str.replace(/[^\w]/g, ' ')
. Nếu bạn không thêm /g
cờ, nó sẽ chỉ thay thế lần xuất hiện đầu tiên. Và nếu bạn không xác định một chuỗi thay thế, ở đây là một khoảng trống ' '
, nó sẽ thay thế bằng undefined
tất cả mọi nơi. Cuối cùng, dấu gạch dưới sẽ không được thay thế vì chúng khớp với nhau \w
. Câu trả lời này không phải là một sự phù hợp hoàn hảo.
Chỉ để những người khác xem:
someString.replaceAll("([^\\p{L}\\p{N}])", " ");
sẽ xóa mọi ký tự unicode không phải chữ cái và không phải số.
replaceAll
, và việc \p{..}
thoát thuộc tính không được triển khai rộng rãi.
/[A-Z]/ig
/[^A-Z]/ig
/[0-9]/g
hoặc/\d+/g
/[^0-9]/g
hoặc/\D+/g
/[^A-Z0-9]/ig
Có những mẫu có thể có khác
Bạn đã thử chưa, str = str.replace(/\W|_/g,'');
nó sẽ trả về một chuỗi không có bất kỳ ký tự nào và bạn có thể chỉ định xem có ký tự đặc biệt nào sau thanh ống dẫn |
để bắt chúng hay không.
var str = "1324567890abc§$)% John Doe #$@'.replace(/\W|_/g, '');
nó sẽ trở lại str = 1324567890abcJohnDoe
hoặc tìm các chữ số và chữ cái và thay thế chúng cho chuỗi trống (""):
var str = "1324567890abc§$)% John Doe #$@".replace(/\w|_/g, '');
nó sẽ trở lại str = '§$)% #$@';
Để so khớp bất kỳ thứ gì khác ngoài chữ cái hoặc số hoặc chữ cái có dấu phụ như é
bạn có thể thử cách này:
[^\wÀ-úÀ-ÿ]
Và để thay thế:
var str = 'dfj,dsf7é@lfsd .sdklfàj1';
str = str.replace(/[^\wÀ-úÀ-ÿ]/g, '_');
Lấy cảm hứng từ bài đăng hàng đầu có hỗ trợ dấu phụ
\w
là cho các ký tự Word và là chính xác giống như[a-zA-Z0-9_]
(lưu ý rằng dấu gạch dưới được coi là một nhân vật từ.) ... nên viết tắt sẽ làstr.replace(/[^\w]/g, ' ')