2016-08-14 3 views
1

Я работаю над надстройкой для Firefox, который преобразует выбранные пользователем температуры. В основном, он проходит через каждый символ выбора пользователя и определяет, является ли это числовым, отрицательным или десятичным с использованием операторов if. Когда он находит символ степени, я хочу, чтобы программа прекратила цикл через символы и сохранила номер, который он вытащил из пользовательского выбора.Как проверить, соответствует ли строка символу юникода?

Однако, поскольку символ степени является символом юникода, оператор if не обнаруживает символ степени и оценивает утверждение как false. Поскольку у меня есть другие отказоустойчивые системы, это не бесконечный цикл.

Мое заявление if (str.charAt(#) == "°"), но оно не будет оцениваться как истинный. В моем тестовом HTML-файле используется только вставляемый в unicode 10 код, а также код °. Это также не приведет к тому, что утверждение будет истинным.

Как это исправить?

+1

бы http://stackoverflow.com/q/31325410/6309 помочь? – VonC

+0

Вы можете использовать регулярное выражение для сопоставления шаблонов в строках. Найти «RegExp» – 4castle

ответ

0

Кажется, работает хорошо для меня:

var str = document.getElementById('thing').innerText; 
 
console.log(str.charAt(0) === "°");
<span id="thing">&deg;</span>

+0

Он не работает на моем конце, но я попытался применить код непосредственно к моей тестовой странице, и он работал там, но по какой-то причине код внутри файла расширения Firefox не будет оценивать true. Странный. Мне нужно связаться с другими парнями AMO и посмотреть, сможем ли мы это понять. –

Смежные вопросы