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>