2016-07-24 3 views
6

Я бы ожидал (10000).toLocaleString('de-DE'), чтобы вернуть "10.000", но вместо этого получаю "10000".Единица измерения: Number.toLocaleString()

Есть ли причина, по которой это не поддерживается? Есть ли способы форматирования чисел?

+0

Я получаю ' "10,000"'. – Oriol

+0

Я получаю '' 10, 000'' :) – daymosik

+0

Он работает, если я вызываю его в функции, и он дает ожидаемый результат, но он не работал для меня, когда я пытался проверить его так: 'it ('test toLocaleString'() => { \t \t \t пусть нб = 1000; \t \t \t пусть ул = nb.toLocaleString ('де-DE'); \t \t \t ожидать (ул) .toBe ('1,000'); \t \t}) ' – Ibti

ответ

1

Это проблема с веб-сайтом, и PhantomJS не хочет поддерживать интернационализацию ... так что, к сожалению, мы застряли с этим в течение некоторого нераскрытого времени.

https://github.com/ariya/phantomjs/issues/12581

То, что я в конечном итоге делает это написание пользовательских Искателя, который проверяет для обоих, так как я бегу в Chrome и PhantomJS.

jasmine.addMatchers({ 
    isAnyOf: (util, customEqualityTesters) => { 
     return { 
     compare: (actual, expected) => { 
      let result = {}; 
      for (let expect of expected) { 
      console.log(actual == expect); 
      if (expect == actual) { 
       result.pass = true; 
       return result; 
      } 
      } 
      result.pass = false 
      return result; 
     } 
     } 
    } 
    }) 

Затем вы можете использовать его как

expect(actual).isAnyOf(['10000', '10.000']); 
Смежные вопросы