Tôi có chuỗi với đường dẫn tệp. Tôi muốn thay thế tất cả các dấu gạch chéo ngược ["\"] bằng các dấu gạch chéo ngược đôi ["\\"].
var replaceableString = "c:\asd\flkj\klsd\ffjkl";
var part = /@"\\"/g;
var filePath = replaceableString .replace[part, /@"\\"/];
console.log[filePath];
Bảng điều khiển đã cho tôi thấy nó.
c:asdlkjklsdfjkl
Tôi đã tìm thấy một cái gì đó như thế này, thật không may, nó không hoạt động. Thay thế \ bằng \\
Hỏi ngày 22 tháng 4 năm 2013 lúc 9:50Apr 22, 2013 at 9:50
PilgrimviispilgrimviisPilgrimViis
1.4212 Huy hiệu vàng18 Huy hiệu bạc20 Huy hiệu Đồng2 gold badges18 silver badges20 bronze badges
13
Try:
var parts = replaceableString.split['\\'];
var output = parts.join['\\\\'];
Cá nhân, vì tôi không phải là chuyên gia về Reg Exps, tôi có xu hướng tránh chúng khi đối phó với các nhân vật không phải là vô sinh, cả do khả năng đọc và để tránh sai lầm kỳ lạ.
Đã trả lời ngày 22 tháng 4 năm 2013 lúc 9:55Apr 22, 2013 at 9:55
LittlesWeetsEaslittlesWeetseasLittleSweetSeas
6.5662 Huy hiệu vàng21 Huy hiệu bạc26 Huy hiệu đồng2 gold badges21 silver badges26 bronze badges
var replaceableString = "c:\asd\flkj\klsd\ffjkl";
alert[replaceableString];
Điều này sẽ cảnh báo bạn
c:asdlkjklsdfjkl
5 vì '\' là một nhân vật thoát hiểm sẽ không được xem xét.Để có một dấu gạch chéo ngược trong chuỗi của bạn, bạn nên làm một cái gì đó như thế này ..
var replaceableString = "c:\\asd\\flkj\\klsd\\ffjkl";
alert[replaceableString];
Điều này sẽ cảnh báo bạn
c:asdlkjklsdfjkl
6JS fiddle
Tìm hiểu về trình tự thoát ở đây
Nếu bạn muốn chuỗi của mình có '\' theo mặc định, bạn nên thoát nó .. sử dụng hàm Escape []
var replaceableString = escape["c:\asd\flkj\klsd\ffjkl"];
alert[replaceableString];
JS fiddle
Đã trả lời ngày 22 tháng 4 năm 2013 lúc 9:55Apr 22, 2013 at 9:55
LittlesWeetsEaslittlesWeetseas
6.5662 Huy hiệu vàng21 Huy hiệu bạc26 Huy hiệu đồng
Điều này sẽ cảnh báo bạn
5 vì '\' là một nhân vật thoát hiểm sẽ không được xem xét.c:asdlkjklsdfjkl
Để có một dấu gạch chéo ngược trong chuỗi của bạn, bạn nên làm một cái gì đó như thế này ..
Điều này sẽ cảnh báo bạn
6c:asdlkjklsdfjkl
JS fiddle
var string = "c:\\asd\\flkj\\klsd\\ffjkl";
var regex = /\\/g;
var FilePath = string.replace[regex, "\\\\"];
Tìm hiểu về trình tự thoát ở đâyApr 22, 2013 at 9:56
Nếu bạn muốn chuỗi của mình có '\' theo mặc định, bạn nên thoát nó .. sử dụng hàm Escape []stema
Bạn có một số vấn đề trong mã của bạn.19 gold badges104 silver badges126 bronze badges
Để có được
c:asdlkjklsdfjkl
7 trong biến chuỗi của bạn, bạn cần thoát khỏi nó.Khi bạn tạo một chuỗi như thế này:
c:asdlkjklsdfjkl
8 ký tự với c:asdlkjklsdfjkl
7 trước đó được coi là trình tự thoát. Vì vậy, trong quá trình tạo chuỗi, nó cố gắng giải thích chuỗi thoát var parts = replaceableString.split['\\'];
var output = parts.join['\\\\'];
0, vì điều này không hợp lệ, nó lưu trữ var parts = replaceableString.split['\\'];
var output = parts.join['\\\\'];
1 cho chuỗi. Ví dụ. var parts = replaceableString.split['\\'];
var output = parts.join['\\\\'];
2 sẽ được hiểu là Newline.single backslash with single forward slash: var stringReplaced = String.raw`c:\asd\flkj\klsd\ffjkl`.split['\\'].join['/']
console.log[stringReplaced];
Tôi giả sử
var parts = replaceableString.split['\\'];
var output = parts.join['\\\\'];
3 đến từ một ví dụ .NET. JavaScript không biết chuỗi "thô".double backslash with single forward slash: var stringReplaced = String.raw`c:\\asd\\flkj\\klsd\\ffjkl`.split['\\\\'].join['/']
console.log[stringReplaced];
Hủy bỏ các trích dẫn từ regex của bạn.Jan 14, 2019 at 9:35
1
Điều này sẽ làm những gì bạn muốn:
Đã trả lời ngày 22 tháng 4 năm 2013 lúc 9:56
var replaceableString = "c:\\asd\\flkj\\klsd\\ffjkl";
Đã trả lời ngày 22 tháng 4 năm 2013 lúc 9:55Apr 22, 2013 at 9:55
LittlesWeetsEaslittlesWeetseasLeon Lucardie
6.5662 Huy hiệu vàng21 Huy hiệu bạc26 Huy hiệu đồng3 gold badges48 silver badges70 bronze badges
7
Điều này sẽ cảnh báo bạn
c:asdlkjklsdfjkl
5 vì '\' là một nhân vật thoát hiểm sẽ không được xem xét.Để có một dấu gạch chéo ngược trong chuỗi của bạn, bạn nên làm một cái gì đó như thế này ..
Điều này sẽ cảnh báo bạn
c:asdlkjklsdfjkl
6 c:asdlkjklsdfjkl
0JS fiddleAug 29, 2016 at 12:54
omkar1707omkar1707omkar1707
Tìm hiểu về trình tự thoát ở đây1 silver badge6 bronze badges
0
Nếu bạn muốn chuỗi của mình có '\' theo mặc định, bạn nên thoát nó .. sử dụng hàm Escape []
Bạn có một số vấn đề trong mã của bạn.
c:asdlkjklsdfjkl
1
Để có được
c:asdlkjklsdfjkl
7 trong biến chuỗi của bạn, bạn cần thoát khỏi nó.Khi bạn tạo một chuỗi như thế này:
8 ký tự với c:asdlkjklsdfjkl
7 trước đó được coi là trình tự thoát. Vì vậy, trong quá trình tạo chuỗi, nó cố gắng giải thích chuỗi thoát c:asdlkjklsdfjkl
0, vì điều này không hợp lệ, nó lưu trữ var parts = replaceableString.split['\\'];
var output = parts.join['\\\\'];
1 cho chuỗi. Ví dụ. var parts = replaceableString.split['\\'];
var output = parts.join['\\\\'];
2 sẽ được hiểu là Newline.12 gold badges97 silver badges154 bronze badges var parts = replaceableString.split['\\'];
var output = parts.join['\\\\'];
Tôi giả sử
var parts = replaceableString.split['\\'];
var output = parts.join['\\\\'];
3 đến từ một ví dụ .NET. JavaScript không biết chuỗi "thô".Mar 25, 2014 at 4:54
Hủy bỏ các trích dẫn từ regex của bạn.thegajman
Điều này sẽ làm những gì bạn muốn:4 silver badges2 bronze badges
Đã trả lời ngày 22 tháng 4 năm 2013 lúc 9:56
c:asdlkjklsdfjkl
2thân câyMay 12, 2014 at 14:52
87.7K19 Huy hiệu vàng104 Huy hiệu bạc126 Huy hiệu đồng
Đây là câu trả lời:
Để thay thế dấu gạch chéo ngược bằng một dấu gạch chéo chuyển tiếp đơn:
c:asdlkjklsdfjkl
3Để thay thế Double Backslash bằng dấu gạch chéo chuyển tiếp đơn:May 11, 2016 at 20:03
0
Đã trả lời ngày 14 tháng 1 năm 2019 lúc 9:35
c:asdlkjklsdfjkl
4\ là một nhân vật trốn thoát. Do đó,
var parts = replaceableString.split['\\'];
var output = parts.join['\\\\'];
4 không chứa bất kỳ dấu gạch chéo ngược nào.Apr 12, 2021 at 21:44