A minimal library of useful Persian / Farsi regular expressions for browser and NodeJS environment
You can download the latest release form the release page or use your preferred package manager.
via npm
npm install persian-rex --save
via bower
bower install persian-rex --save
Once downloaded you can include the dist file like this:
<scirpt src="bower_components/persian-rex/dist/persian-rex.js"></script>
Or if you are using node:
var persianRex = require('persian-rex');
The number
RegExp will match any string that only contains Persian numbers.
if (persianRex.number.test('۱۲۳'))
makeInputsRTL();
The letter
RegExp will match any string that only contains Persian letters.
if (persianRex.letter.test('ابپ'))
makeInputsRTL();
The text
RegExp will match any string that only contains Persian letters, Persian numbers or Persian punctuations.
if (persianRex.text.test('ابپ۱؟ )()۲۳'))
doSomething();
From version 2 of this library, rtl
RegExp is added to give you the ability to detect if tested string contains only rtl characters or not. rtl characters are Persian letters, Persian numbers and only the punctuations that are rtl (not [] or / that are also used in English). This is added so that you can be absolutely sure that you are dealing with a rtl text. Here is the example:
if (persianRex.rtl.test('،'))
doSomething();
if (persianRex.rtl.test('!'))
doSomething(); //this line will not be executed
Since version 1.3.0
punctuations are added to the library and they are combined with the text
method to create a more natural detection of Persian text. It's rare that anybody wants to test a string against Persian punctuation but we decided to expose is for our users. Here is how to use it:
if (persianRex.punctuation.test('!()[]،؟«»؛'))
doSomething();
You can prefix any of the above methods with has.
if (persianRex.hasNumber.test('ابپ۱۲۳۴۵۶123abc'))
doSomething();
The if condition is true, because the string has a persian number in it. You can use hasLetter
and hasText
as well.
You can also get the ASCI code ranges for Persian numbers and Persian letters to make your custom RegExps.
var customLettersRegular = new RegExp('^' + persianRex.lettersASCIRange);
var customNumberRegular = new RegExp('^' + persianRex.numbersASCIRange);
var customNumberRegular = new RegExp('^' + persianRex.rtlPunctuationsASCIRange);
var customNumberRegular = new RegExp('^' + persianRex.ltrPunctuationsASCIRange);
Many of regular expressions in this project is extracted from larger projects such as Themeyab.com, If you think I'm are missing an important regular expression, feel free to open an issue on this repository and I will include it in the next version.