Как выбрать текст между двумя символами в Javascript? - PullRequest
0 голосов
/ 28 ноября 2018

Так что я сейчас пытаюсь выяснить, как выбрать текст между двумя символами (для примера я буду использовать косую черту /)

Вот что у меня есть.

<!DOCTYPE html>
<html>

<head>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <script>
    function startWhenLoaded() {
      var text = $("p").text();
      var secondStartingPoint, startPointOne, startPointTwo;
      if (text.indexOf("/", 0) !== -1) {
        //I did -1 because indexOf returns -1 if nothing is found.
        /*Also, the second argument in indexOf() acts as my starting 
        point for searching.*/
        secondStartingPoint = text.indexOf("/") + 1;
        startPointOne = text.indexOf("/") + 1;
        if (text.indexOf("/", secondStartingPoint) !== -1) {
          startPointTwo = text.indexOf("", secondStartingPoint) + 1;
          var selectedText = slice(startPointOne, startPointTwo);
          $("body").append("<p>" + selectedText + "</p>");
          //but nothing happens.
        }
      }
  </script>
</head>

<body onload="startWhenLoaded()">
  <p>/can I select and duplicate this?/</p>
</body>

</html>

Но это ничего не делает.

Ответы [ 2 ]

0 голосов
/ 28 ноября 2018

Regex - это самый простой и легкий способ получить ваше решение.используйте функцию exec(), чтобы получить текст между '/';

console.log(/^\/(.*)\/$/.exec('/some text, /other example//'))
0 голосов
/ 28 ноября 2018

Это может быть достигнуто просто с помощью регулярных выражений, таких как:

<!DOCTYPE html>
<html>

<head>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <script>
    function startWhenLoaded() {
      var text = $("p").text();
      var extracted = text.match(/\/(.*)\//).pop();

      alert('The extracted text is :'+extracted);
    }
  </script>
</head>

<body onload="startWhenLoaded()">
  <p>Some text here in the start /can I select and duplicate this?/ Some extra text at the end</p>
</body>

</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...