Как найти кавычки с двойными кавычками? - PullRequest
0 голосов
/ 01 ноября 2019

мой английский язык не очень хорош. извините!

Как написать кавычки с двойными кавычками внутри одной переменной?

Я хочу объединить два сценария: номер1 и номер2

//number 1:
    var rew = /\'/g;
    $('span').contents().each(function() {
    if (this.nodeType === 3 && rew.test(this.nodeValue)) {
    this.nodeValue = this.nodeValue.replace(rew, '');
    }
    });
    
 //number 2:
    var ref = /\"/g;
    $('span').contents().each(function() {
    if (this.nodeType === 3 && ref.test(this.nodeValue)) {
    this.nodeValue = this.nodeValue.replace(ref, '');
    }
    });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<span>
Hello 'world'.<br>
Hello "world".
</span>

1 Ответ

2 голосов
/ 01 ноября 2019

С одной стороны, вы можете просто включить оба ' и " в набор символов:

/['"]/g

Это будет соответствовать и удалять все кавычки. Но это также удалит кавычки, которые на самом деле не заключаются в кавычки, например:

Bob's
games' difficulty

Так что вы можете рассмотреть возможность сопоставления только тех кавычек, которые имеют соответствующую кавычку позже, до разрыва слова. Совпадение и захват a ' или ", затем повторение и захват (во второй группе захвата) любых непробельных символов, пока не встретится тот же захваченный символ, и замена на эту вторую группу захвата (непробельные символы в кавычках):

//number 1:
var rew = /(['"])(\S+)\1/g;
$('span').contents().each(function() {
  if (this.nodeType === 3) {
    this.nodeValue = this.nodeValue.replace(rew, '$2');
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<span>
Hello 'world'.<br>
Hello "world".<br>
Bob's<br>
games' difficulty
</span>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...