Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/alisinabh/numero
A micro library for converting non-english digits in elixir.
https://github.com/alisinabh/numero
arabic-digits digits english-digits
Last synced: 27 days ago
JSON representation
A micro library for converting non-english digits in elixir.
- Host: GitHub
- URL: https://github.com/alisinabh/numero
- Owner: alisinabh
- License: mit
- Created: 2017-05-31T21:46:17.000Z (over 7 years ago)
- Default Branch: main
- Last Pushed: 2023-08-30T02:47:28.000Z (about 1 year ago)
- Last Synced: 2024-10-04T13:35:10.652Z (about 1 month ago)
- Topics: arabic-digits, digits, english-digits
- Language: Elixir
- Homepage: https://hex.pm/packages/numero
- Size: 30.3 KB
- Stars: 7
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- freaking_awesome_elixir - Elixir - A micro library for converting non-english utf-8 digits in elixir. (Text and Numbers)
- fucking-awesome-elixir - numero - A micro library for converting non-english utf-8 digits in elixir. (Text and Numbers)
- awesome-elixir - numero - A micro library for converting non-english utf-8 digits in elixir. (Text and Numbers)
README
# Numero
[![Build Status](https://github.com/alisinabh/Numero/actions/workflows/ci.yml/badge.svg)](https://github.com/alisinabh/Numero)
[![Module Version](https://img.shields.io/hexpm/v/numero.svg)](https://hex.pm/packages/numero)
[![Hex Docs](https://img.shields.io/badge/hex-docs-lightgreen.svg)](https://hexdocs.pm/numero/)A micro library for converting non-english UTF8 digits. (like ۱=1, ۲=2)
## Supported languages
Almost all numbers defined in Unicode is supported in Numero.
For more info on supported characters you can visit [here](http://www.fileformat.info/info/unicode/category/Nd/list.htm)
## Installation
Numero can be installed
by adding `numero` to your list of dependencies in `mix.exs`:```elixir
def deps do
[{:numero, "~> 0.3.0"}]
end
```## Using Numero
On strings for strings:
```elixir
result = Numero.normalize("1۲۳۰4a۳tس")
# result = "12304a3tس"
```Smart numeric convert:
(Convert numbers to Integer or Float based on input string)
```elixir
result = Numero.normalize_as_number("1۲۳۰4۳")
# result = {:ok, 123043}result = Numero.normalize_as_number("1۲۳۰4۳.۴5")
# result = {:ok, 123043.45}result = Numero.normalize_as_number!("1۲۳۰4۳.۴5")
# result = 123043.45
```Strip all non numeric chars from a string:
```elixir
result = Numero.remove_non_digits("12 345abs")
# result = "12345"# Or even make exceptions for some chars like 'a' and ' ' (space)
result = Numero.remove_non_digits("12 345bas", ~c[a ])
# result = "12 345a"
```Checking if a string is all numbers
```elixir
result = Numero.digit_only?("1234567890")
# result = trueresult = Numero.digit_only?("1234567890.a")
# result = false
```[https://hexdocs.pm/numero](https://hexdocs.pm/numero).