string.split не работает так, как задумано в Firefox? Прекрасно работает в Chrome

Имея небольшую проблему здесь. У меня есть этот код:

//phoneNumber is a string ie ('01☂916☂5234321')
var phoneNumberSplit = phoneNumber.split('☂');

console.log(phoneNumberSplit);
//in Chrome this returns as ["01", "916", "5234321"], in Firefox this returns as
//[ "01☂916☂5234321" ]

Я позже позвоню phoneNumberSplit[1] что в Chrome хорошо, но в Firefox написано undefined, Почему string.split вернуть две разные вещи в зависимости от того, в каком браузере я нахожусь? В документации сказано, что он работает как в Firefox, так и в Chrome. Любая помощь?

редактировать ооооо, я выясняю, в чем заключалась моя проблема. На странице я тестировал это на charset="UTF-8" отсутствовал в метатеге и не читал символ юникода. Я предполагаю, что в Chrome UTF-8 включен по умолчанию, а в Firefox - нет, или что-то в этом роде. Упс.

2 ответа

Я понял, в чем была моя проблема. На странице я тестировал это на charset="UTF-8" отсутствовал в метатеге и не читал символ юникода. Я предполагаю, что в Chrome UTF-8 включен по умолчанию, а в Firefox - нет, или что-то в этом роде. Упс.

Метатег необходим, чтобы сообщить браузеру кодировку символов. Firefox 39 дал правильный результат, но в консоли также предупредил, что кодировка символов была неправильной. Попробуйте этот код с включенным / удаленным метатегом, чтобы увидеть разницу.

<html>
<head>
<meta charset="UTF-8">
</head>
<body>
</body>
<script>
//phoneNumber is a string ie ('01☂916☂5234321')
var phoneNumber='01☂916☂5234321';
var phoneNumberSplit = phoneNumber.split('☂');

console.log(phoneNumberSplit);
//in Chrome this returns as ["01", "916", "5234321"], in Firefox this returns as
//[ "01☂916☂5234321" ]
</script>
</html>
Другие вопросы по тегам