javascript - XRegExp for email address -


i want write regular expression email address including non-italic characters.

i tried return false

please provide correct solution possible

 <!doctype html>  <html>  <head>  <script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/xregexp/3.1.1/xregexp-all.js"></script>  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>  <script type="text/javascript">  	var em = xregexp('^([\\p{l}+|\\p{n}*][@][\\p{l}+][.][\\p{l}+])$'); // please me correct  	jquery(function(){  		jquery('input').blur(function(){  			console.log(jquery(this).val());  			console.log(em.test(jquery('#t1').val()));  			  		});  	});  	  </script>  	<title></title>  </head>  <body>  enter name: <input type="text" name="t1" id="t1" class="kcd">  </body>  </html>

while there better means make sure email regex valid (see @tushar's comment), i'd explain problem regex.

the ^([\\p{l}+|\\p{n}*][@][\\p{l}+][.][\\p{l}+])$ contains incorrectly formed character classes [\\p{l}+|\\p{n}*] , [\\p{l}+]. match single character defined inside them - [\\p{l}+|\\p{n}*] matches either p, {, l, etc. , [\\p{l}+] matches either p, {, l, }, or +.

if plan use approach, might want fix regex as

xregexp('^[\\p{l}\\p{n}]+@\\p{l}+[.]\\p{l}+$') 

details:

  • ^ - start of string
  • [\\p{l}\\p{n}]+ - 1 or more unicode letters or digits
  • @ - "at" sign
  • \\p{l}+ - 1 or more unicode letters
  • [.] - literal dot
  • \\p{l}+ - ibid.
  • $ - end of string.

Comments