Опираясь на ответ Роба В., который обнаруживает проблему, которую replace
не заменяет глобально по умолчанию, другая вещь, которая здесь не указана, это фактический текст, который вы ищете. Роб У также указывает, что, поскольку вы получаете текст с помощью text()
в jQuery, сущности
были декодированы в фактические, фактические неразрывные пробелы.
- это объект HTML, указывающий его в качестве аргумента для replace
, который фактически не будет интерпретировать его как неразрывный пробел, он просто будет искать фактический текст
в теме строка.
Указание кодовой точки Unicode для неразрывного пробела (00A0) в регулярном выражении поиска работало для меня в режиме совместимости IE 8 и IE 7:
var m = t.replace(/\u00a0/g, ' ').match(/\d+-(\d+)\sof\s(\d+)/);
В IE 9 все работает правильно, потому что он, как и другие браузеры, содержит неразрывные пробелы в \s
. Более старые версии IE не , и это единственная причина, по которой замена была бы необходима.