Как заменить обратную косую черту в строку через JavaScript ?! (Другой вопрос) - PullRequest
0 голосов
/ 10 сентября 2018

Я пытаюсь использовать плагин редактора Atom, который возвращает путь импорта для простого импорта модулей JS.

Это работает правильно в Mac и Linux, но в окнах, которые возвращают неверный путь.

Например, правильный путь:

import Weather from '../../../helpers/weather';

Но это возвращает:

import Weather from '..\..\helpers\weather';

Я искал эту проблему в StackOverflow, но эти ответы мне не помогли. потому что этот путь возвращается из node.path, и я не могу заменить \ на /, и решение этой проблемы неудобно.

Я искал String.raw в синтаксисе ES6, и это мне тоже не помогло.

Я хочу заменить все \ to / на этот путь импорта, и, к сожалению, JS не может знать \ в String, и я должен сделать трюк, чтобы это исправить.

Спасибо

Ответы [ 2 ]

0 голосов
/ 10 сентября 2018

[Изменено] На самом деле, через Javascript есть способ сделать это. Вы можете использовать функцию String.replace () с простым регулярным выражением.

Str = Str.replace(/\/gi,'/');    

Это на самом деле не сработает, поскольку \ является escape-символом , поэтому вам нужно добавить еще один, например:

Str = Str.replace(/\\/gi,'/');    //with escape , replace / by \ globally

Вам придется удвоить \ в вашей исходной строке, иначе один \ будет просто экранировать символ рядом с ним

Первый ответ должен быть полезным, вы также можете использовать редактор SublimeText, чтобы выбрать все / и перезаписать //.

Но если вы хотите сделать это напрямую с помощью javascript, например:

var Str = '.\.\.\helpers\weather'; // and double these, I don't know how

Проверьте это с помощью этого кода:

var Str = '..\\..\\..\\helpers\\weather';
console.log(Str);
Str = Str.replace(/\\/gi,'/');
console.log(Str);

Или создайте HTML-файл и скопируйте его:

	<!DOCTYPE html>
<html>
   <head>
      <title>/ to \</title>
   </head>
   <body>
      <p id="p1">Original:   </p>
      <p id="p2">Modified:   </p>
      <script>
         var Str = '..\\..\\..\\helpers\\weather';
          console.log(Str);
          document.getElementById('p1').innerHTML += Str;
         
         Str = Str.replace(/\\/gi,'/');
         console.log(Str);	
          document.getElementById('p2').innerHTML += Str;
      </script>
   </body>
</html>
0 голосов
/ 10 сентября 2018

Вот что вам может пригодиться

https://atom.io/packages/toggle-slash

enter image description here

Ctrl + Shift + / Переключить / (или Удвоить его) Ctrl + Shift + \ Переключить (или удвоить)

...