Нужно перевести слова в цифры, например: один>1, десять>10 и т.д.
Asked
Active
Viewed 1,119 times
-1
1 Answers
1
Похожий вопрос уже когда-то поднимался тут. "Игра не стоит свеч". Если с цифрами всё не так печально и можно использовать массив для замещения, например,
var numArr = ['ноль','один','два','три','четыре'];
console.log(numArr.indexOf('три')); // выведет 3
То с числами всё гораздо сложнее. Задумайтесь над тем, как вы будете выискивать в общем контексте многозначное число? Но, даже если вы и смогли получить число прописью, то на этом сложности не заканчиваются. Нужно создать несколько массивов:
- Где будут все варианты написания чисел прописью от 0 до 999
- Со всеми вариантами написания разрядов прописью (окончания): ['тысяч','а','и',''], ['миллион','','а','ов'] и т.д.
А далее продумать алгоритмы для разных вариантов: с учетом и без учета возможных окончаний.
Deonis
- 34,025
-
особенно учитывая все особенности склонения числительных по падежам в русском языке. Например: четыреста пятьдесят шесть, четырехсот пятидесяти шести, четыремстам пятидесяти шести, четыреста пятьдесят шесть, четырьмястами пятьюдесятью шестью, о четырехстах пятидесяти шести - замучаетесь все это разбирать – DreamChild Jun 03 '13 at 06:30
-
-
не забудьте про столь же многочисленные исключения из множества правил)) – DreamChild Jun 03 '13 at 07:52
replace()— то, что нужно. В более сложном, проще воспользоваться API какого-то из сервисов NLP в хорошем смысле слова (Natural Language Processing). – Sergiks Jun 03 '13 at 07:45