-1

Нужно перевести слова в цифры, например: один>1, десять>10 и т.д.

  • 1
    @Lolpetr, Согласно правилам форума, вопросы не должны сводиться к решению либо завершению учебных заданий за учащихся. Пожалуйста, уточните, что вы сделали сами и что не получилось. – zb' Jun 03 '13 at 06:00
  • Не понимаю, как сделать это, хотел через replace, но не думаю, что это хорошо. – Lolpetr Jun 03 '13 at 06:01
  • В простом случае replace() — то, что нужно. В более сложном, проще воспользоваться API какого-то из сервисов NLP в хорошем смысле слова (Natural Language Processing). – Sergiks Jun 03 '13 at 07:45

1 Answers1

1

Похожий вопрос уже когда-то поднимался тут. "Игра не стоит свеч". Если с цифрами всё не так печально и можно использовать массив для замещения, например,

var numArr = ['ноль','один','два','три','четыре'];
console.log(numArr.indexOf('три')); // выведет 3

То с числами всё гораздо сложнее. Задумайтесь над тем, как вы будете выискивать в общем контексте многозначное число? Но, даже если вы и смогли получить число прописью, то на этом сложности не заканчиваются. Нужно создать несколько массивов:

  1. Где будут все варианты написания чисел прописью от 0 до 999
  2. Со всеми вариантами написания разрядов прописью (окончания): ['тысяч','а','и',''], ['миллион','','а','ов'] и т.д.

А далее продумать алгоритмы для разных вариантов: с учетом и без учета возможных окончаний.

Deonis
  • 34,025
  • особенно учитывая все особенности склонения числительных по падежам в русском языке. Например: четыреста пятьдесят шесть, четырехсот пятидесяти шести, четыремстам пятидесяти шести, четыреста пятьдесят шесть, четырьмястами пятьюдесятью шестью, о четырехстах пятидесяти шести - замучаетесь все это разбирать – DreamChild Jun 03 '13 at 06:30
  • Обнадёживает, что множество правил всё же конечно : ) – Sergiks Jun 03 '13 at 07:17
  • не забудьте про столь же многочисленные исключения из множества правил)) – DreamChild Jun 03 '13 at 07:52