Обычное значение массива Javascript и значение массива, созданные сравнением функций соответствия

#javascript #arrays #match

#javascript #массивы #сопоставление

Вопрос:

У меня проблема с двумя типами сравнения значений массивов, вот

   tagNames = [];

            tagNames.push('61');
            cmt_wrds = '‏‏61'.replace(/[`~!@#$%^amp;*()_| -=?;:'",،؛«».<>{}[]\/]/gi, ' ').match(/S /g);


            if ( tagNames[0] == cmt_wrds[0] ) { // issue is here
                console.log('yes'); // --> nothing
            };
  

Ответ №1:

Если вы зарегистрируете свои переменные, вы увидите, что они немного отличаются. Оно помещает

 'u200f' 
  

символ, который является меткой справа налево.

 var tagNames = [];

 tagNames.push('61');
 cmt_wrds = '‏‏61'.replace(/[`~!@#$%^amp;*()_| -=?;u200f:'",،؛«».<>{}[]\/]/gi, ' ').match(/S /g);

console.log(tagNames);
console.log(cmt_wrds);

console.log(tagNames[0] === cmt_wrds[0]); // returns false, because they are different  

Комментарии:

1. Как следует предотвратить использование этого символа? есть решение?

2. @RaminRabii добавьте u200f в регулярное выражение. Смотрите пример

3. Большое спасибо. это было то, что

Ответ №2:

Используйте Batter с некоторой переменной для предоставления входных данных, это решит вашу проблему.

 (function () {
   tagNames = [];

                tagNames.push('61');
  var datas ="61";//variable declaration
                cmt_wrds = datas.replace(/[`~!@#$%^amp;*()_| -=?;:'",،؛«».<>{}[]\/]/gi, ' ').match(/S /g);

 

                if ( tagNames[0] == cmt_wrds[0]) { // issue is here
                    console.log('yes'); // --> nothing
                };
  
  })()  

Ответ №3:

Если вы показываете их длину, вот разница.

tagNames[0].length равно 2

cmt_wrds[0].length равно 4

 tagNames = [];

            tagNames.push('61');
            cmt_wrds = '‏‏61'.replace(/[`~!@#$%^amp;*()_| -=?;:'",،؛«».<>{}[]\/]/gi, ' ').match(/S /g);


            if ( tagNames[0] == cmt_wrds[0] ) { // issue is here
                console.log('yes'); // --> nothing
            };
console.log(tagNames[0].length);
console.log(cmt_wrds[0].length);