Я пытаюсь создать функцию поиска и удаления типов с помощью регулярных выражений.Я смог добраться до точки, где я мог удалить строки, но обнаружил, что строки с символами не могут быть удалены.Когда, используя обычную строку, такую как var word = "is"
, она работает нормально, пока не встретит .
, и тогда я получаю странный нежелательный вывод.
Некоторые другие нежелательные явления также возникали при добавлении символов в строки, которые я хотел удалить, например (обратите внимание, что var word = "is."
, а не is
в приведенном ниже коде:
var myarray = ["Dr. this is", "this is. iss", "Is this IS"]
var my2array = []
var word = "is."
//var regex = new RegExp(`\\b${word}\\b`, 'gi');
var regex = new RegExp('\\b' + word + '\\b', 'gi');
for (const i of myarray) {
var x = i.replace(regex, "")
my2array.push(x)
}
myarray = my2array
console.log(myarray)
["Dr. this is", "this is. ", "this IS"]
Это ^ неверно в нескольких отношениях (по какой-то причине iss
пропало, is.
остается - это была основная строка, которую я пытался удалить, первая is
в последнейИндекс пропал ...)
То есть, мой желаемый результат в этом случае будет ["Dr. this is", "this iss", "Is this IS"]
Я также попытался использовать литерал шаблона, как видно из моего закомментированного кода.
Цель состоит в том, чтобы просто удалить из моего массива все, что может быть значением в var word
. Является ли значение обычной строкой, строкой с символами или просто символами. (И, конечно, в рамках разрывовУ меня есть).