Skip to content

Commit dfbdc0e

Browse files
committed
init
0 parents  commit dfbdc0e

File tree

5 files changed

+151
-0
lines changed

5 files changed

+151
-0
lines changed

README.md

+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
## Persian Regex
2+
3+
##### a nodejs package to Regex persian Strings
4+
this package includes extra features to
5+
6+
###### Installation
7+
8+
```
9+
npm install persian-regex
10+
```
11+
12+
###### Run in Codes
13+
### es5
14+
```
15+
const regex=require('persian-regex');
16+
17+
const persianString="سلام دنیا - سلام ایران "
18+
const Email="[email protected]"
19+
const Number="123456 "
20+
21+
console.log(regex.isPersian(persianString)); //true
22+
console.log(regex.isPersian(Email)); //false
23+
console.log(regex.isEmail(Number)); //false
24+
console.log(regex.isEmail(Email)); // true
25+
console.log(regex.isNumber(Email)); //false
26+
```
27+
28+
### jsx
29+
```
30+
import {isPersian,isEmail,isNumber} from "persian-regex";
31+
32+
const persianString="سلام دنیا - سلام ایران "
33+
const Email="[email protected]"
34+
const Number="123456 "
35+
36+
console.log(isPersian(persianString));
37+
console.log(isEmail(Email));
38+
console.log(isNumber(Number));
39+
```
40+
41+
the result of methods , is boolean .
42+
43+
:heartpulse:

index.js

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
module.exports=require('./regex');

package.json

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
{
2+
"name": "persian-regex",
3+
"version": "1.0.1",
4+
"description": "validate persian inputs",
5+
"main": "index.js",
6+
"scripts": {
7+
"test": "mocha **/*.test.js"
8+
},
9+
"repository": {
10+
"type": "git",
11+
"url": "github.com/nimahkh/persian-regex"
12+
},
13+
"keywords": [
14+
"persian-regex",
15+
"nodejs-persian-regex",
16+
"persian-input-variables"
17+
],
18+
"author": "nima habibkhoda",
19+
"license": "WTFPL",
20+
"dependencies": {
21+
"chai": "^4.2.0",
22+
"mocha": "^5.2.0"
23+
}
24+
}

regex/index.js

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
class Regex {
2+
/**
3+
* this package is checking that user input value is persian or not .
4+
*/
5+
isPersian(String) {
6+
const regex = /^[\u0600-\u06FF\s]+$/;
7+
const regexRul = new RegExp(regex);
8+
return String.match(regexRul) !== null;
9+
}
10+
11+
/**
12+
* this function is validating numbers
13+
*/
14+
isNumber(number) {
15+
const regex = /^[0-9]+$/;
16+
const regexRul = new RegExp(regex);
17+
return !!number.match(regexRul);
18+
}
19+
20+
/**
21+
* this function is validating emails
22+
*/
23+
24+
isEmail(email) {
25+
const regex = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
26+
const regexRul = new RegExp(regex);
27+
return !!email.match(regexRul);
28+
}
29+
}
30+
31+
module.exports = new Regex();

regex/regex.test.js

+52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
const {describe, it} = require('mocha');
2+
const {expect} = require('chai');
3+
const Regex = require('./index');
4+
const email = "[email protected]";
5+
const PersianString = "نیما حبیب خدا";
6+
const number = "123456789";
7+
8+
describe('Persian-Regex', () => {
9+
describe('#isPersian()', () => {
10+
it('should be a method', () => {
11+
expect(Regex).to.respondTo('isPersian');
12+
});
13+
14+
it('should return True', () => {
15+
expect(Regex.isPersian(PersianString)).to.be.true;
16+
});
17+
18+
it('should return False', () => {
19+
expect(Regex.isPersian(email)).to.be.false;
20+
});
21+
});
22+
23+
describe('#isNumber()', () => {
24+
it('should be a method', () => {
25+
expect(Regex).to.respondTo('isNumber');
26+
});
27+
28+
it('should return true', () => {
29+
const isNumber = Regex.isNumber(number);
30+
expect(isNumber).to.be.true;
31+
});
32+
33+
it('should return False', () => {
34+
expect(Regex.isNumber(email)).to.be.false;
35+
});
36+
});
37+
38+
describe('#isEmail()', () => {
39+
it('should be a method', () => {
40+
expect(Regex).to.respondTo('isNumber');
41+
});
42+
43+
it('should return true', () => {
44+
const isEmail = Regex.isEmail(email);
45+
expect(isEmail).to.be.true;
46+
});
47+
48+
it('should return False', () => {
49+
expect(Regex.isEmail(number)).to.be.false;
50+
});
51+
});
52+
});

0 commit comments

Comments
 (0)