Skip to content

A minimal library of useful Persian / Farsi regular expressions for browser and NodeJS environment

License

Notifications You must be signed in to change notification settings

ImanMh/persianRex

Repository files navigation

persianRex

A minimal library of useful Persian / Farsi regular expressions for browser and NodeJS environment

travis-ci

Places that you can use persianRex

persianRex features

Getting started

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');

Detecting Persian Numbers

The number RegExp will match any string that only contains Persian numbers.

 if (persianRex.number.test('۱۲۳'))
  makeInputsRTL();

Detecting Persian Letters

The letter RegExp will match any string that only contains Persian letters.

 if (persianRex.letter.test('ابپ'))
  makeInputsRTL();

Detecting Persian Text

The text RegExp will match any string that only contains Persian letters, Persian numbers or Persian punctuations.

 if (persianRex.text.test('ابپ۱؟ )()۲۳'))
  doSomething();

Detecting RTL characters

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

Punctuations

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();

Using has prefix

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.

Lower level usage

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);

Sponsors

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.

Themeyab Logo

About

A minimal library of useful Persian / Farsi regular expressions for browser and NodeJS environment

Resources

License

Stars

Watchers

Forks

Packages

No packages published