Hướng dẫn javascript regex quotes - dấu ngoặc kép regex javascript

Hãy xem hai cách hiệu quả đối phó với các trích dẫn thoát ra. Những mẫu này không được thiết kế ngắn gọn cũng như thẩm mỹ, nhưng để có hiệu quả.

Những cách này sử dụng phân biệt đối xử ký tự đầu tiên để nhanh chóng tìm thấy các trích dẫn trong chuỗi mà không có chi phí xen kẽ. (Ý tưởng là loại bỏ các ký tự nhanh chóng không được trích dẫn mà không kiểm tra hai nhánh của sự xen kẽ.)

Nội dung giữa các trích dẫn được mô tả với một vòng lặp không được kiểm soát (thay vì sự thay thế lặp đi lặp lại) cũng hiệu quả hơn:

"[^"\\]*(\\(.|\n)[^"\\]*)*"|'[^'\\]*(\\(.|\n)[^'\\]*)*'
4

Rõ ràng để đối phó với các chuỗi không có trích dẫn cân bằng, bạn có thể sử dụng các bộ định lượng sở hữu thay thế:

"[^"\\]*(\\(.|\n)[^"\\]*)*"|'[^'\\]*(\\(.|\n)[^'\\]*)*'
5 hoặc một cách giải quyết để mô phỏng chúng, để ngăn chặn quá nhiều việc quay lại. Bạn cũng có thể chọn một phần được trích dẫn có thể là một trích dẫn mở cho đến khi trích dẫn tiếp theo (không được trừ đi) hoặc kết thúc của chuỗi. Trong trường hợp này, không cần sử dụng các bộ định lượng sở hữu, bạn chỉ cần thực hiện trích dẫn cuối cùng tùy chọn.

THÔNG BÁO: Đôi khi các trích dẫn không được thoát ra với dấu gạch chéo ngược mà bằng cách lặp lại báo giá. Trong trường hợp này, Subpothoty nội dung trông như thế này:

"[^"\\]*(\\(.|\n)[^"\\]*)*"|'[^'\\]*(\\(.|\n)[^'\\]*)*'
6

Các mẫu tránh việc sử dụng một nhóm chụp và sao lưu (ý tôi là một cái gì đó như

"[^"\\]*(\\(.|\n)[^"\\]*)*"|'[^'\\]*(\\(.|\n)[^'\\]*)*'
7) và sử dụng một sự thay thế đơn giản nhưng với
"[^"\\]*(\\(.|\n)[^"\\]*)*"|'[^'\\]*(\\(.|\n)[^'\\]*)*'
8 ở đầu, về yếu tố.

Perl thích:

["'](?:(?<=")[^"\\]*(?s:\\.[^"\\]*)*"|(?<=')[^'\\]*(?s:\\.[^'\\]*)*')

.

.

Kịch bản ECMA:

(?=["'])(?:"[^"\\]*(?:\\[\s\S][^"\\]*)*"|'[^'\\]*(?:\\[\s\S][^'\\]*)*')

Posix mở rộng:

"[^"\\]*(\\(.|\n)[^"\\]*)*"|'[^'\\]*(\\(.|\n)[^'\\]*)*'

hoặc đơn giản:

"([^"\\]|\\.|\\\n)*"|'([^'\\]|\\.|\\\n)*'

// 'Apple' : valid
// 'Apple : Invalid
// Apple : Invalid

if(str.indexOf('\'') > -1 && str.indexOf('"') > -1){
   // do something
}

Điều này sẽ phát hiện nếu chuỗi chứa trích dẫn đơn và đôi.

Nội dung chính ShowShow

  • JavaScript sử dụng trích dẫn đơn hay đôi?
  • Làm cách nào để kiểm tra xem chuỗi có chứa dấu ngoặc kép trong java không?
  • Làm thế nào để bạn tìm thấy một dấu nháy đơn trong một chuỗi?
  • Làm thế nào để bạn xử lý một dấu nháy đơn trong JavaScript?

Sử dụng ký tự thoát (\) Cú pháp của \ 'sẽ luôn là một trích dẫn duy nhất và cú pháp của \ "sẽ luôn là một trích dẫn kép, mà không sợ phá vỡ chuỗi.Được xây dựng với ".'Chúng tôi sẽ sử dụng một dấu nháy đơn một cách an toàn trong các trích dẫn đơn. The syntax of \' will always be a single quote, and the syntax of \" will always be a double quote, without any fear of breaking the string. Using this method, we can use apostrophes in strings built with " . 'We\'re safely using an apostrophe in single quotes.

Điều này sẽ phát hiện nếu chuỗi chứa trích dẫn đơn và đôi.Jan 21, 2015 at 20:54

user544079user544079user544079user544079

Nội dung chính Show40 gold badges111 silver badges168 bronze badges

2

if(str[0] == "'" && str[str.length - 1] == "'"){
   // do something
}

JavaScript sử dụng trích dẫn đơn hay đôi?Jan 21, 2015 at 20:57

Làm cách nào để kiểm tra xem chuỗi có chứa dấu ngoặc kép trong java không?Daniel Robinson

Cách kiểm tra xem chuỗi bắt đầu và kết thúc bằng một báo giá duy nhất. (Regexp)?2 gold badges17 silver badges20 bronze badges

1

/^'.*'$/.test(str)

Đã hỏi ngày 21 tháng 1 năm 2015 lúc 20:54Jan 21, 2015 at 20:54

15.6K40 Huy hiệu vàng111 Huy hiệu bạc168 Huy hiệu đồng40 gold badges111 silver badges168 bronze badgesJan 21, 2015 at 20:58

1

Đã trả lời ngày 21 tháng 1 năm 2015 lúc 20:57Jan 21, 2015 at 20:57

if(str[0] == "'" && str[str.length - 1] == "'"){
   // do something
}
0:
if (str.charAt(0) == "'" && str.charAt(str.length-1) == "'") {

}

JavaScript sử dụng trích dẫn đơn hay đôi?Jan 21, 2015 at 20:57

Làm cách nào để kiểm tra xem chuỗi có chứa dấu ngoặc kép trong java không?James Thorpe

Cách kiểm tra xem chuỗi bắt đầu và kết thúc bằng một báo giá duy nhất. (Regexp)?5 gold badges75 silver badges89 bronze badges

ES6

if (str.startsWith("'") && str.endsWith("'")) {
  // do something
}

Đã hỏi ngày 21 tháng 1 năm 2015 lúc 20:54Jan 21, 2015 at 20:54

15.6K40 Huy hiệu vàng111 Huy hiệu bạc168 Huy hiệu đồng40 gold badges111 silver badges168 bronze badges

Đã trả lời ngày 21 tháng 1 năm 2015 lúc 20:57Jan 21, 2015 at 20:57

Daniel Robinsondaniel RobinsonDaniel RobinsonSep 29, 2021 at 8:26

3.3272 Huy hiệu vàng17 Huy hiệu bạc20 Huy hiệu đồng2 gold badges17 silver badges20 bronze badgesfakie

Regex cho bắt đầu và kết thúc với một báo giá duy nhất.1 silver badge7 bronze badges

(?=["'])(?:"[^"\\]*(?:\\[\s\S][^"\\]*)*"|'[^'\\]*(?:\\[\s\S][^'\\]*)*')
1

Đã trả lời ngày 21 tháng 1 năm 2015 lúc 20:58Jan 21, 2015 at 20:58

Không cần Regex, bạn có thể sử dụng chức năng Jul 19, 2018 at 12:25

0

Daniel Robinsondaniel RobinsonJames Thorpe

if(str[0] == "'" && str[str.length - 1] == "'"){
   // do something
}
1.

3.3272 Huy hiệu vàng17 Huy hiệu bạc20 Huy hiệu đồng5 gold badges75 silver badges89 bronze badges

Đã trả lời ngày 21 tháng 1 năm 2015 lúc 20:58

if(str[0] == "'" && str[str.length - 1] == "'"){
   // do something
}
0:Sep 29, 2021 at 8:26

James Thorpejames Thorpefakie

30.7K5 Huy hiệu vàng75 Huy hiệu bạc89 Huy hiệu đồng1 silver badge7 bronze badges

Không được hỗ trợ trong IE

MDN Startswith EndswithJul 19, 2018 at 12:25

(?=["'])(?:"[^"\\]*(?:\\[\s\S][^"\\]*)*"|'[^'\\]*(?:\\[\s\S][^'\\]*)*')
8

Tạo một regexp để tìm chuỗi trong trích dẫn kép

(?=["'])(?:"[^"\\]*(?:\\[\s\S][^"\\]*)*"|'[^'\\]*(?:\\[\s\S][^'\\]*)*')
9

Các chuỗi nên hỗ trợ thoát, giống như các chuỗi JavaScript làm. Chẳng hạn, các trích dẫn có thể được chèn dưới dạng

if(str[0] == "'" && str[str.length - 1] == "'"){
   // do something
}
6.

if(str[0] == "'" && str[str.length - 1] == "'"){
   // do something
}
2 một dòng mới là
if(str[0] == "'" && str[str.length - 1] == "'"){
   // do something
}
3 và bản sao lại là
if(str[0] == "'" && str[str.length - 1] == "'"){
   // do something
}
4.
(?=["'])(?:"[^"\\]*(?:\\[\s\S][^"\\]*)*"|'[^'\\]*(?:\\[\s\S][^'\\]*)*')
6

  • Xin lưu ý, đặc biệt, một trích dẫn đã thoát ra
  • if(str[0] == "'" && str[str.length - 1] == "'"){
       // do something
    }
    
    2 không kết thúc một chuỗi.
  • Vì vậy, chúng ta nên tìm kiếm từ một trích dẫn này sang trích dẫn khác bỏ qua các trích dẫn đã thoát ra trên đường.
  • Đó là phần thiết yếu của nhiệm vụ, nếu không nó sẽ là tầm thường.

Ví dụ về các chuỗi phù hợp:

"[^"\\]*(\\(.|\n)[^"\\]*)*"|'[^'\\]*(\\(.|\n)[^'\\]*)*'
3

JavaScript sử dụng trích dẫn đơn hay đôi?

Làm cách nào để kiểm tra xem chuỗi có chứa dấu ngoặc kép trong java không?. Choosing a quoting style is up to you and there is no special semantics for one style over the other. Nevertheless, it is important to note that there is no type for a single character in javascript, everything is always a string!

Làm cách nào để kiểm tra xem chuỗi có chứa dấu ngoặc kép trong java không?

Cách kiểm tra xem chuỗi bắt đầu và kết thúc bằng một báo giá duy nhất. (Regexp)? length()-1) == 34) { System. out. println("Has double quotes"); } 34 in ascii table represents doublequote , hence it works fine.

Làm thế nào để bạn tìm thấy một dấu nháy đơn trong một chuỗi?

Nếu giá trị trả về lớn hơn> 0 thì apostrophe hoặc bất cứ điều gì bạn đang tìm kiếm là ở đó, nếu không thì không. or whatever you are looking for is there, otherwise not. or whatever you are looking for is there, otherwise not.

Làm thế nào để bạn xử lý một dấu nháy đơn trong JavaScript?

Sử dụng ký tự thoát (\) Cú pháp của \ 'sẽ luôn là một trích dẫn duy nhất và cú pháp của \ "sẽ luôn là một trích dẫn kép, mà không sợ phá vỡ chuỗi.Được xây dựng với ".'Chúng tôi sẽ sử dụng một dấu nháy đơn một cách an toàn trong các trích dẫn đơn. The syntax of \' will always be a single quote, and the syntax of \" will always be a double quote, without any fear of breaking the string. Using this method, we can use apostrophes in strings built with " . 'We\'re safely using an apostrophe in single quotes. The syntax of \' will always be a single quote, and the syntax of \" will always be a double quote, without any fear of breaking the string. Using this method, we can use apostrophes in strings built with " . 'We\'re safely using an apostrophe in single quotes.