// '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.
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]?
Đã hỏi ngày 21 tháng 1 năm 2015 lúc 20:54Jan 21, 2015 at 20:54
user544079user544079user544079
15.6K40 Huy hiệu vàng111 Huy hiệu bạc168 Huy hiệu đồng40 gold badges111 silver badges168 bronze badges
2
if[str[0] == "'" && str[str.length - 1] == "'"]{
// do something
}
Đã trả lời ngày 21 tháng 1 năm 2015 lúc 20:57Jan 21, 2015 at 20:57
Daniel Robinsondaniel RobinsonDaniel Robinson
3.3272 Huy hiệu vàng17 Huy hiệu bạc20 Huy hiệu đồng2 gold badges17 silver badges20 bronze badges
1
/^'.*'$/.test[str]
Regex cho bắt đầu và kết thúc với một báo giá duy nhất.
Đã trả lời ngày 21 tháng 1 năm 2015 lúc 20:58Jan 21, 2015 at 20:58
1
Không cần Regex, bạn có thể sử dụng chức năng
if[str[0] == "'" && str[str.length - 1] == "'"]{
// do something
}
0:if [str.charAt[0] == "'" && str.charAt[str.length-1] == "'"] {
}
Đã trả lời ngày 21 tháng 1 năm 2015 lúc 20:57Jan 21, 2015 at 20:57
Daniel Robinsondaniel RobinsonJames Thorpe
3.3272 Huy hiệu vàng17 Huy hiệu bạc20 Huy hiệu đồng5 gold badges75 silver badges89 bronze badges
ES6
if [str.startsWith["'"] && str.endsWith["'"]] {
// do something
}
Regex cho bắt đầu và kết thúc với một báo giá duy nhất.
Đã trả lời ngày 21 tháng 1 năm 2015 lúc 20:58
Không cần Regex, bạn có thể sử dụng chức năng
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
if[[name[0] == "'" && name[name.length - 1] == "'"]||[name[0] == '"' && name[name.length - 1] == '"']]{
///
}
Không được hỗ trợ trong IE
MDN Startswith EndswithJul 19, 2018 at 12:25
0
Tạo một regexp để tìm chuỗi trong trích dẫn kép
if[str[0] == "'" && str[str.length - 1] == "'"]{
// do something
}
1.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
}
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.let str = "Just like \"here\".";
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:
.. "test me" ..
.. "Say \"Hello\"!" ... [escaped quotes inside]
.. "\\" .. [double backslash inside]
.. "\\ \"" .. [double backslash and an escaped quote inside]
Trong JavaScript, chúng ta cần tăng gấp đôi các dấu gạch chéo ngược để truyền chúng ngay vào chuỗi, như thế này:
let str = ' .. "test me" .. "Say \\"Hello\\"!" .. "\\\\ \\"" .. ';
// the in-memory string
alert[str]; // .. "test me" .. "Say \"Hello\"!" .. "\\ \"" ..
Giải pháp:
if[str[0] == "'" && str[str.length - 1] == "'"]{
// do something
}
6.Từng bước một:
- Đầu tiên chúng tôi tìm kiếm một trích dẫn mở đầu
7if[str[0] == "'" && str[str.length - 1] == "'"]{ // do something }
- Sau đó, nếu chúng ta có dấu gạch chéo ngược
4 [chúng ta phải nhân đôi nó trong mẫu vì nó là một ký tự đặc biệt], thì bất kỳ ký tự nào cũng ổn sau nó [một dấu chấm].if[str[0] == "'" && str[str.length - 1] == "'"]{ // do something }
- Nếu không, chúng tôi lấy bất kỳ ký tự nào ngoại trừ một trích dẫn [điều đó có nghĩa là kết thúc của chuỗi] và một dấu gạch chéo ngược
- Và như vậy cho đến khi trích dẫn kết thúc.
Trong hành động:
let regexp = /"[\\.|[^"\\]]*"/g;
let str = ' .. "test me" .. "Say \\"Hello\\"!" .. "\\\\ \\"" .. ';
alert[ str.match[regexp] ]; // "test me","Say \"Hello\"!","\\ \""