javascript - Regular expression for arabic and english and some limited special characters -
i need regular expression detect
1- english letter or
2- arabic letter or
3- both or
4- number in between ( or start or end place dose not matter)
5-maximum length can 30.
and make sure dose not have special characters except (they can appear where)
@ , = % $ # & _
my solution: use regular expression:
var regex = /^([a-za-z0-9\s@,=%$#&_\u0600-\u06ff]).{0,30}$/; var result = regex.test('happy- - - /* */ % ! ~'); console.log(result);//prints true , should print false because of ! , other special characters not allowed the problem
my solution not correct
my references arabic use check here # 13 in list second reference third reference
u+0600–u+06ff
you need quantify group, not dot.
here regex arabic (unicode 9) characters.
note you've included english characters, did mean latin ?
^(?:[a-za-z0-9\s@,=%$#&_\u0600-\u06ff\u0750-\u077f\u08a0-\u08ff\ufb50-\ufdcf\ufdf0-\ufdff\ufe70-\ufeff]|(?:\ud802[\ude60-\ude9f]|\ud83b[\ude00-\udeff])){0,30}$
https://jsfiddle.net/pydbqxgb/
expanded
^ (?: [a-za-z0-9\s@,=%$#&_\u0600-\u06ff\u0750-\u077f\u08a0-\u08ff\ufb50-\ufdcf\ufdf0-\ufdff\ufe70-\ufeff] | (?: \ud802 [\ude60-\ude9f] | \ud83b [\ude00-\udeff] ) ){0,30} $ an alternative, uses basic non-control (whitespace only) latin.
^(?:[\u0009-\u000d\u001c-\u007e\u0600-\u06ff\u0750-\u077f\u08a0-\u08ff\ufb50-\ufdcf\ufdf0-\ufdff\ufe70-\ufeff]|(?:\ud802[\ude60-\ude9f]|\ud83b[\ude00-\udeff])){0,30}$
https://jsfiddle.net/st60dyve/
expanded
^ (?: [\u0009-\u000d\u001c-\u007e\u0600-\u06ff\u0750-\u077f\u08a0-\u08ff\ufb50-\ufdcf\ufdf0-\ufdff\ufe70-\ufeff] | (?: \ud802 [\ude60-\ude9f] | \ud83b [\ude00-\udeff] ) ){0,30} $
Comments
Post a Comment