Ví dụ này sẽ chỉ cho bạn cách thay thế một trích dẫn từ một chuỗi. Phương thức thay thế javascript mặc định sẽ thay thế lần xuất hiện đầu tiên của trích dẫn đơn, để thay thế tất cả các lần xuất hiện, chúng tôi phải sử dụng biểu thức chính quy
- Xóa tất cả các dấu ngoặc đơn khỏi một chuỗi
var outputstr= chuỗi đầu vào. thay thế[/'/g,''];
- Thay thế tất cả các dấu ngoặc đơn bằng dấu ngoặc kép trong một chuỗi
var outputstr= chuỗi đầu vào. thay thế[/'/g,'"'];
Thí dụ
Giả sử bạn có một chuỗi có dấu ngoặc kép đơn hoặc kép trong JavaScript. Và, vì lý do này hay lý do khác, bạn muốn xóa các dấu ngoặc kép đó khỏi chuỗi của mình
Cách tốt nhất để thực hiện điều này là gì?
Để xóa dấu ngoặc kép khỏi chuỗi trong JavaScript, hãy sử dụng phương thức String.replace[]
. Bạn có thể nhắm mục tiêu dấu ngoặc kép bằng RegEx và thay thế chúng bằng giá trị null
Cú pháp của phương thức String.replace[]
như sau
String.replace[pattern, replacement];
Như bạn có thể thấy từ đoạn mã trên, Chuỗi. Phương thức replace[] cho phép bạn thay thế một pattern
bằng một replacement
, trong đó
pattern
là một chuỗi hoặc RegEx;replacement
là một chuỗi khác hoặc một hàm được gọi cho mỗi trận đấu
Nó tương thích với tất cả các trình duyệt web cũ và hiện đại, bao gồm Internet Explorer 6+, Microsoft Edge 12+ và Safari 3. 1+. Vì vậy, khả năng tương thích, ngay cả đối với người dùng có phần mềm lỗi thời, sẽ không thành vấn đề
Làm thế nào nó hoạt động
Giả sử rằng, trong ứng dụng JavaScript của chúng ta, có một chuỗi tên là
// Store quote in string
let myString = '"One only understands the things that one tames," said the fox.'
1Cũng giả sử rằng, trong
// Store quote in string
let myString = '"One only understands the things that one tames," said the fox.'
1, chúng ta đã lưu trữ câu trích dẫn sau đây từ Hoàng tử bé của Antoine de Saint-Exupéry// Store quote in string
let myString = '"One only understands the things that one tames," said the fox.'
Để xóa dấu ngoặc kép [“”] khỏi
// Store quote in string
let myString = '"One only understands the things that one tames," said the fox.'
1, chúng ta sẽ sử dụng hàm String.replace[]
// Store quote in string
let myString = '"One only understands the things that one tames," said the fox.'
// Remove double quotation marks from string
console.log[myString.replace[/["]/g, '']];
Lưu ý
// Store quote in string
let myString = '"One only understands the things that one tames," said the fox.'
5 ở cuối biểu thức chính quy của chúng ta. Nó là viết tắt của // Store quote in string
let myString = '"One only understands the things that one tames," said the fox.'
6 và nó làm cho mẫu có thể áp dụng cho tất cả các trường hợp của ký hiệu trích dẫn, không chỉ trường hợp đầu tiên. [Không có nó, chỉ những trích dẫn đầu tiên sẽ bị xóa. ]Đầu ra là một chuỗi có dấu ngoặc kép được loại bỏ thành công
________số 8_______Hãy thử đoạn mã trên. Hãy mở các công cụ phát triển của trình duyệt của bạn ngay bây giờ và sao chép/dán phần này vào bảng điều khiển
Giải pháp tốt nhất
Khi phải xóa dấu ngoặc kép khỏi một chuỗi, bạn có thể gặp bốn loại dấu ngoặc kép. Có các dấu ngoặc kép thẳng đơn, thẳng kép, cong đơn và cong kép
Các vấn đề còn phức tạp hơn bởi thực tế là dấu ngoặc kép đơn và kép có thể mở [nghiêng về phía trước] hoặc đóng [nghiêng về phía sau]
Nếu, tại bất kỳ thời điểm nào, bạn không thể chắc chắn chuỗi của mình có thể có loại dấu ngoặc kép nào, cách tốt nhất là viết RegEx bao gồm tất cả các dấu ngoặc kép đó
// Store quote in string
let myString = '“One only understands the things that one tames,“ said the fox.'
// Remove single, double, or curly quotation marks from string
console.log[myString.replace[/['‘’"“”]/g, '']];
Điều này làm cho biểu thức chính quy dài hơn và do đó kém hiệu quả hơn. Tuy nhiên, nó làm cho nó có hiệu quả phổ biến trong việc loại bỏ dấu ngoặc kép, bất kể ký hiệu là gì.
Thông thường, trong khi mã hóa bằng javascript, bạn sẽ bắt gặp việc sử dụng dấu ngoặc kép 'đơn' hoặc "kép" cho các chuỗi và sẽ tự hỏi, nếu có bất kỳ sự khác biệt thực sự nào giữa hai chuỗi này và nếu có, liệu có lợi thế hơn khi sử dụng một chuỗi không? . đọc tiếp
Mục lục
- Sự khác biệt giữa hai kiểu trích dẫn
- Lựa chọn phong cách trích dẫn phù hợp
- Báo giá đơn so với báo giá kép - Ưu và nhược điểm
- lời chia tay
Sự khác biệt giữa hai phong cách trích dẫn
Cả dấu ngoặc đơn [' '] và dấu ngoặc kép [""] đều được sử dụng để biểu thị một chuỗi trong Javascript. Chọn một phong cách trích dẫn là tùy thuộc vào bạn và không có ngữ nghĩa đặc biệt nào cho phong cách này so với phong cách kia. Tuy nhiên, điều quan trọng cần lưu ý là không có loại ký tự đơn nào trong javascript, mọi thứ luôn là một chuỗi
'apple' === "apple"
Một số điểm chính khác mà cả hai phong cách trích dẫn như sau
- Cho dù bạn mở một chuỗi bằng kiểu trích dẫn nào, hãy đóng nó bằng cùng một kiểu
'apple' //correct
"apple" //correct
"apple' //incorrect
Lựa chọn phong cách trích dẫn phù hợp
Lựa chọn trích dẫn khôn ngoan có thể giúp bạn thoát khỏi các trích dẫn đơn ['] hoặc kép ["] trong một chuỗi. Ví dụ: nếu bạn muốn lưu trữ một đoạn mã HTML trong một biến, bạn có thể sử dụng dấu ngoặc kép ["] cho các giá trị thuộc tính HTML và sử dụng dấu ngoặc đơn ['] để bao quanh chuỗi JavaScript
var div = '...'
Trích dẫn trong một trích dẫn
Sử dụng trích dẫn trong một chuỗi dẫn đến lỗi. Ví dụ,
var message='Javascript's beauty is simplicity';
Không có cách nào để trình duyệt biết cái nào là trích dẫn kết thúc. Trình thông dịch thấy trích dẫn thứ hai trong 'Javascript's là trích dẫn kết thúc - vì vậy phần còn lại của dòng trở nên không hợp lệ
Chúng ta có thể khắc phục điều này bằng cách sử dụng thực tế là javascript cho phép cả dấu ngoặc đơn và dấu ngoặc kép xác định một chuỗi. Vì vậy, trong trường hợp này, bạn có thể sử dụng dấu ngoặc kép
var message="Javascript's beauty is simplicity";
Một phương pháp thay thế là thoát khỏi các hộp trích dẫn bằng cách sử dụng dấu gạch chéo lên "\". Bạn sử dụng dấu gạch chéo phía trước ký tự mà bạn định trốn thoát. Vì vậy, thông điệp tương tự trở thành
var message='Javascript\'s beauty is simplicity';
Những điểm cần nhớ
- Chuỗi trích dẫn kép có thể có dấu nháy đơn mà không thoát khỏi chúng, ngược lại, chuỗi trích dẫn đơn có thể có dấu nháy kép bên trong mà không cần phải thoát chúng
- Dấu nháy kép [ \" ] phải thoát khỏi dấu nháy kép và ngược lại dấu nháy đơn [ \' ] phải thoát khỏi dấu nháy đơn
Báo giá đơn so với báo giá kép - Ưu và nhược điểm
ưu
Dấu ngoặc kép Dấu ngoặc kép Dễ dàng đọc hơn đối với chuỗi trống [' '] trông tốt hơn ["" ""] Trong JSON, kiểu trích dẫn duy nhất được phép là dấu ngoặc kép [" "] Dễ dàng hơn nếu bạn muốn viết html trong javascript Loại bỏ nhu cầu thoátNhược điểm
Dấu nháy đơn Dấu nháy kép Không được JSON hỗ trợ Phải nhấn một phím phụ [Shift] khi muốn sử dụng dấu ngoặc képPhong cách trích dẫn phổ biến
Xem xét một vài dự án JavaScript phổ biến, chúng ta có thể thấy một ưu tiên rõ ràng cho dấu ngoặc đơn hơn dấu ngoặc kép
Dự án Trích dẫn chi phối phong cách lodash ' - 99% trích dẫn phấn ' - 100% trích dẫn phản ứng ' - 90% trích dẫn yêu cầu ' - 97% trích dẫn chỉ huy. js ' - 97% dấu ngoặc kép thời điểm ' - 90% dấu ngoặc kép express ' - 92% dấu ngoặc kép tslib " - 100% dấu ngoặc kép gỡ lỗi ' - 97% dấu ngoặc kép node-fs-extra ' - 98% dấu ngoặc kép axios ' - 81Dữ liệu thu được từ https. //bytearcher. com/
Tuy nhiên, một số lượng đáng kể các thư viện giao diện người dùng thích kiểu trích dẫn kép có thể liên quan đến sự hiện diện của các đoạn HTML