Javascript thay thế nhiều ngắt dòng bằng một

Regex, viết tắt của biểu thức chính quy, là một công cụ hữu ích đối với tôi khi thao tác và xác thực chuỗi trong JavaScript. Trong bài đăng này, chúng tôi sẽ sử dụng Regex để xóa mọi thứ ở giữa và bao gồm cả hai ký tự được xác định trước

Trước khi chúng tôi đi sâu vào vấn đề này, đây là một vài điều bạn cần biết về Regex

str.replace[/\n/g, " "]
4 là một hàm JavaScript tìm kiếm một chuỗi cho một giá trị đã chỉ định hoặc một biểu thức chính quy và trả về một chuỗi mới trong đó các giá trị đã chỉ định được thay thế

Một

str.replace[/\n/g, " "]
5 được sử dụng thay thế để mở tìm kiếm và xuất hiện trước Regex trong câu lệnh thay thế. Ví dụ.
str.replace[/\n/g, " "]
6

str.replace[/\n/g, " "]
7 biểu thị sự thay thế toàn cầu, nghĩa là nó sẽ thay thế mọi phiên bản của mẫu
str.replace[/\n/g, " "]
8. Các chữ cái khác mà bạn có thể thấy là
str.replace[/\n/g, " "]
9 cho từ không nhạy cảm,
" Hello, World. /* Goodbye, World. */ Hello again, World. "
0 cho nhiều dòng và
" Hello, World. /* Goodbye, World. */ Hello again, World. "
1 cho một dòng để đặt tên cho một số. Đối với bài đăng này, chúng tôi sẽ chỉ quan tâm đến
str.replace[/\n/g, " "]
7

Tôi sẽ đến với các nhân vật quan trọng khác sau. Bây giờ, hãy bắt đầu. Xem chuỗi bên dưới. Nó chứa một bình luận nhiều dòng cũng như dữ liệu bên ngoài nó

var str = `
Hello, World.
/*
Goodbye, World.*/Hello again, World.
`

Sử dụng Regex, làm thế nào chúng ta có thể so khớp

" Hello, World. /* Goodbye, World. */ Hello again, World. "
3 và
" Hello, World. /* Goodbye, World. */ Hello again, World. "
4 và nội dung bên trong chúng, trong khi vẫn giữ nguyên thông tin bên ngoài các ký tự đó? . Điều này sẽ đơn giản hóa mẫu Regex của chúng ta vì những lý do mà tôi sẽ đề cập sau. Để làm điều này, chúng ta có thể viết Regex dưới đây

str.replace[/\n/g, " "]

Dòng này, sử dụng hàm

" Hello, World. /* Goodbye, World. */ Hello again, World. "
5, sẽ thay thế bất kỳ phiên bản dòng mới nào [
" Hello, World. /* Goodbye, World. */ Hello again, World. "
6] bằng một khoảng trắng, hợp nhất nhiều dòng thành một dòng. Biểu thức trên sẽ làm cho chuỗi của chúng ta trông như thế này

" Hello, World. /* Goodbye, World. */ Hello again, World. "

Tuyệt quá. Chúng tôi có tất cả dữ liệu trên một dòng, nhưng chúng tôi vẫn có các ký tự nhiều dòng đó. Biểu thức tiếp theo sẽ chăm sóc chúng

Trước khi tiếp tục, hãy xem xét rằng cả

" Hello, World. /* Goodbye, World. */ Hello again, World. "
7 và
" Hello, World. /* Goodbye, World. */ Hello again, World. "
8 đều là các ký tự đặc biệt. Điều này có nghĩa là nếu chúng ta cố khớp chúng trong biểu thức của mình, thì chúng ta không thể đặt chúng vào nguyên trạng hoặc biểu thức của chúng ta sẽ cho rằng chúng là một phần của phép toán chứ không phải các ký tự chữ trong mẫu

Giả sử chúng ta có chuỗi bên dưới

str.replace[/\n/g, " "]
8

Nếu chúng tôi muốn thay thế tất cả các a bằng x, chúng tôi có thể viết cái này

str.replace[/\n/g, " "]
9

Điều này sẽ cung cấp cho chúng tôi

" Hello, World. /* Goodbye, World. */ Hello again, World. "
9. Nếu chúng ta thử điều đó với
" Hello, World. /* Goodbye, World. */ Hello again, World. "
7, biểu thức sẽ bị hỏng

Chúng ta cần sử dụng ký tự thoát,

str.replace[/\n/g, " "]
81. Ký tự thoát này sẽ cho phép chúng tôi sử dụng các ký tự đặc biệt của mình làm ký tự chữ. Chúng ta có thể sử dụng ký tự thoát như vậy

str.replace[/\n/g, " "]
3

Chúng ta có thể sử dụng ký tự thoát để xác định

" Hello, World. /* Goodbye, World. */ Hello again, World. "
3. Xem bên dưới

str.replace[/\n/g, " "]
5

Chúng tôi đã đối sánh

" Hello, World. /* Goodbye, World. */ Hello again, World. "
3 và thay thế nó bằng
str.replace[/\n/g, " "]
84, nhưng chúng tôi cũng cần xác định
" Hello, World. /* Goodbye, World. */ Hello again, World. "
4. Thông thường, chúng ta có thể sử dụng ký tự 'thay thế' [
str.replace[/\n/g, " "]
86] để khớp với nhiều mẫu

str.replace[/\n/g, " "]
0

Điều này hiệu quả, nhưng vì chúng tôi không chỉ tìm kiếm hai mẫu đó, nên

str.replace[/\n/g, " "]
86 không phục vụ chúng tôi tốt. Thay vào đó, chúng tôi sẽ sử dụng ký tự
str.replace[/\n/g, " "]
88

str.replace[/\n/g, " "]
88 có nghĩa là khớp với bất kỳ ký tự nào ngoại trừ ngắt dòng. Chúng tôi đã loại bỏ các ngắt dòng nên không cần phải lo lắng về những điều đó

str.replace[/\n/g, " "]
4

Tại sao nó không hoạt động? .

str.replace[/\n/g, " "]
88 có thể giúp thiết lập các quy tắc đối sánh mẫu, nhưng bộ định lượng chỉ định số lượng phiên bản của một ký tự, nhóm hoặc lớp ký tự phải có mặt để khớp.
str.replace[/\n/g, " "]
88 không có bộ định lượng sẽ khớp với bất kỳ ký tự nào, nhưng chỉ khớp với ký tự đầu tiên. Dưới đây là một ví dụ hoạt động mà không có bộ định lượng

str.replace[/\n/g, " "]
8

Khi chỉ có một ký tự giữa

" Hello, World. /* Goodbye, World. */ Hello again, World. "
3 và
" Hello, World. /* Goodbye, World. */ Hello again, World. "
4, hàm
" Hello, World. /* Goodbye, World. */ Hello again, World. "
5 của chúng tôi hoạt động vì chỉ có một phiên bản của mẫu đối sánh của chúng tôi. Vì chúng tôi cần có khả năng so khớp bất kỳ [hoặc không có gì] giữa
" Hello, World. /* Goodbye, World. */ Hello again, World. "
3 và
" Hello, World. /* Goodbye, World. */ Hello again, World. "
4, cách tốt nhất của chúng tôi là sử dụng bộ định lượng
" Hello, World. /* Goodbye, World. */ Hello again, World. "
8

" Hello, World. /* Goodbye, World. */ Hello again, World. "
8 tìm thấy 0 hoặc nhiều kết quả trùng khớp, nghĩa là BẤT CỨ ĐIỀU GÌ khớp với mẫu theo nghĩa đen [mà nhờ có
str.replace[/\n/g, " "]
88, bất kỳ ký tự nào ngoài ngắt dòng] sẽ khớp. Và vì chúng ta đặt hai ký tự này giữa
" Hello, World. /* Goodbye, World. */ Hello again, World. "
3 và
" Hello, World. /* Goodbye, World. */ Hello again, World. "
4, biểu thức của chúng ta bây giờ sẽ chọn
" Hello, World. /* Goodbye, World. */ Hello again, World. "
3 và
" Hello, World. /* Goodbye, World. */ Hello again, World. "
4 cũng như TẤT CẢ các phiên bản của bất kỳ ký tự nào ngoài ngắt dòng ở giữa chúng. Đây là Regex của chúng tôi, khi
str.replace[/\n/g, " "]
88 và
" Hello, World. /* Goodbye, World. */ Hello again, World. "
8 được sử dụng song song

str.replace[/\n/g, " "]
0

Như bạn có thể thấy, khớp mẫu của chúng tôi hoạt động và hàm

" Hello, World. /* Goodbye, World. */ Hello again, World. "
5 của chúng tôi đã thay thế khớp bằng
str.replace[/\n/g, " "]
84. Để làm cho điều này dễ đọc hơn, hãy thay thế các nhận xét nhiều dòng bằng một khoảng trắng, thay vì
str.replace[/\n/g, " "]
84, sau đó thay thế các khoảng trắng thừa được tạo từ việc thay thế mẫu bằng các khoảng trắng

như vậy

str.replace[/\n/g, " "]
1

Tụi mình gần đến nơi rồi. Có một điều nữa chúng ta có thể làm để làm cho điều này dễ đọc hơn. JavaScript có một chức năng gọi là,

str.replace[/\n/g, " "]
50

str.replace[/\n/g, " "]
51 được sử dụng để xóa khoảng trắng ở cả hai đầu của chuỗi. Hãy giải quyết vấn đề đó ở cuối hàm thay thế của chúng ta để hoàn thiện chuỗi của chúng ta

str.replace[/\n/g, " "]
2

Toàn bộ giải pháp của chúng ta sẽ như thế này

str.replace[/\n/g, " "]
3Tóm tắt

Dưới đây là bảng phân tích các bước phát triển

1. Cho một chuỗi nhiều dòng, thay thế tất cả các dòng mới [được đại diện bởi

" Hello, World. /* Goodbye, World. */ Hello again, World. "
6] bằng một khoảng trắng, chuyển chuỗi nhiều dòng thành một dòng. Điều này sẽ đơn giản hóa Regex của chúng tôi

2. Khi chuỗi là một dòng, hãy thực hiện một hàm

" Hello, World. /* Goodbye, World. */ Hello again, World. "
5 khác, lần này sử dụng ký tự thoát để Regex coi các ký tự đặc biệt của chúng tôi là ký tự chữ

3. Bao gồm các ký tự

" Hello, World. /* Goodbye, World. */ Hello again, World. "
3 và
" Hello, World. /* Goodbye, World. */ Hello again, World. "
4 trong biểu thức của chúng tôi và đặt ký tự
str.replace[/\n/g, " "]
88 ở giữa chúng để bao gồm bất kỳ ký tự nào ngoại trừ ngắt dòng [chúng tôi đã xóa những ký tự đó nên bạn không cần lo lắng]

4. Định lượng

str.replace[/\n/g, " "]
88 bằng cách thêm
" Hello, World. /* Goodbye, World. */ Hello again, World. "
8. Sự kết hợp này sẽ khớp với bất kỳ ký tự nào ở bất kỳ số lượng phiên bản nào giữa chúng

5. Sự kết hợp của các ký tự đặc biệt đã thoát và bất kỳ ký tự nào trong bất kỳ số lượng trường hợp nào giữa chúng sẽ cho phép chúng tôi khớp một cách hiệu quả

" Hello, World. /* Goodbye, World. */ Hello again, World. "
3,
" Hello, World. /* Goodbye, World. */ Hello again, World. "
4 và bất kỳ ký tự nào ở giữa. Chúng tôi thay thế bộ sưu tập các ký tự này bằng một khoảng trống

6. Chúng tôi thực hiện một chức năng

" Hello, World. /* Goodbye, World. */ Hello again, World. "
5 khác, lần này loại bỏ mọi khoảng trắng thừa, được biểu thị bằng
str.replace[/\n/g, " "]
02 và thay thế nó bằng một khoảng trắng

7. Cuối cùng, chúng tôi sử dụng hàm

str.replace[/\n/g, " "]
50 của JavaScript để xóa khoảng trắng ở cuối chuỗi của chúng tôi, trả về một chuỗi có thể đọc được, có khoảng cách thích hợp với
" Hello, World. /* Goodbye, World. */ Hello again, World. "
3,
" Hello, World. /* Goodbye, World. */ Hello again, World. "
4 và bất kỳ nội dung nào ở giữa được xóa

Nếu bạn thích bài đăng hoặc cần làm rõ về bất kỳ điều gì được đề cập, hãy cho tôi biết trong phần bình luận. Đừng quên để lại vỗ tay và chia sẻ

Làm cách nào để thay thế ngắt dòng trong JavaScript?

replace[] phương thức regex để thay thế dòng mới bằng . chuỗi. replace[] là một phương thức có sẵn trong JavaScript được sử dụng để thay thế một phần của chuỗi đã cho bằng một chuỗi khác hoặc một biểu thức chính quy.

Làm cách nào để thay thế n bằng khoảng trắng trong JavaScript?

hàm thay thế[]. từ = từ. replace[/\n/g, " "]; Lưu ý rằng bạn cần cờ g trên biểu thức chính quy để thay thế tất cả các dòng mới bằng .

Làm cách nào để xóa thẻ br khỏi chuỗi trong JavaScript?

phương thức thay thế[] để xóa tất cả các ngắt dòng khỏi một chuỗi, e. g. str. thay thế[/[\r\n]/gm, ''];. Phương thức thay thế [] sẽ loại bỏ tất cả các ngắt dòng khỏi chuỗi bằng cách thay thế chúng bằng một chuỗi trống. Đã sao chép.

Làm cách nào để thay thế n bằng dòng mới trong Java?

Ví dụ, trong Linux, một dòng mới được ký hiệu là “\n”, còn được gọi là Nguồn cấp dữ liệu Dòng. Trong Windows, một dòng mới được biểu thị bằng cách sử dụng “\r\n”, đôi khi được gọi là Trả về dòng và Nguồn cấp dữ liệu hoặc CRLF. Việc thêm một dòng mới trong Java cũng đơn giản như bao gồm “\n”, “\r” hoặc “\r\n” ở cuối chuỗi của chúng tôi.

Chủ Đề