网站地图    收藏   

主页 > 前端 > javascript >

javascript 正则表达式之英文、中文、数字、下划线

来源:自学PHP网    时间:2022-12-08 17:30 作者: 阅读:

[导读] 本文章收藏了一些常用的javascript 正则表达式用法,包括有:英文、中文、数字、下划线正则语法有需要的朋友可参考。...


 代码如下 :

^[wu4E00-u9FA5uF900-uFA2D]*$

1、一个正则表达式,只含有汉字、数字、字母、下划线不能以下划线开头和结尾:


 代码如下 :

^(?!_)(?!.*?_$)[a-zA-Z0-9_u4e00-u9fa5]+$ 

 其中:

^  与字符串开始的地方匹配

(?!_) 不能以_开头

(?!.*?_$) 不能以_结尾


 代码如下 :

[a-zA-Z0-9_u4e00-u9fa5]+

 至少一个汉字、数字、字母、下划线

$ 与字符串结束的地方匹配


放在程序里前面加@,否则需要\进行转义


 代码如下 :

@"^(?!_)(?!.*?_$)[a-zA-Z0-9_u4e00-u9fa5]+$"

(或者:@"^(?!_)w*(?<!_)$"    或者  @" ^[u4E00-u9FA50-9a-zA-Z_]+$ "  )

2、只含有汉字、数字、字母、下划线,下划线位置不限:


 代码如下 :

  ^[a-zA-Z0-9_u4e00-u9fa5]+$

3、由数字、26个英文字母或者下划线组成的字符串


 代码如下 :

^w+$

4、2~4个汉字


 代码如下 :

  @"^[u4E00-u9FA5]{2,4}$";

5、


 代码如下 :

^[w-]+(.[w-]+)*@[w-]+(.[w-]+)+$

用:(Abc)+    来分析:  XYZAbcAbcAbcXYZAbcAb


XYZAbcAbcAbcXYZAbcAb

6、


 代码如下 :

 


[^u4E00-u9FA50-9a-zA-Z_]

34555#5' -->34555#5'

[u4E00-u9FA50-9a-zA-Z_]    eiieng_89_   --->   eiieng_89_

_';'eiieng_88&*9_    -->  _';'eiieng_88&*9_

_';'eiieng_88_&*9_  -->  _';'eiieng_88_&*9_


public  bool RegexName(string str)

  {

   bool flag=Regex.IsMatch(str,@"^[a-zA-Z0-9_u4e00-u9fa5]+$");

   return  flag;

  }


Regex   reg=new   Regex("^[a-zA-Z_0-9]+$");  

  if(reg.IsMatch(s))  

  {  

  \符合规则  

  }  

  else  

  {  

  \存在非法字符  

  }


多行模式


一下代码中的正则表达式想要匹配行末的一个单词.它只会匹配最后的Sixth, 但实际上这个字符串包含两个换行符,因


此, Second, Fourth也应该匹配出来,因此引入了多行模式


 代码如下 :

var toMarch6 = "First SecondnThird FourthnFifth Sixth";

var regExp6 = /(w+)$/g;

var sArr6 = toMarch6.match(regExp6);

dwr(sArr6);

要引入多行模式,需要在正则表达式后面添加m 选项, 这会让$边界匹配换行符(n) 和字符串真正的结尾.


 代码如下 :

var regExp6 = /(w+)$/gm;

 


判断日期的正则表达式:


 代码如下 :

function isValidDate(s){

    var reDate = /(?:[1-9]|0[1-9]|[12][0-9]|3[01])/(?:[1-9]|0[1-9]|1[0-2])/(?:19d{2}|20d{2})/;

    return reDate.test(s);

}

正则字符串替换


 //replace方法,用于替换字符串

 var str ="some money";

 alert(str.replace("some","much"));//much money

 //replace的第一个参数可以为正则表达式

 var re = /s/;//空白字符

 alert(str.replace(re,"%"));//some%money

 //在不知道字符串中有多少空白字符时,正则表达式极为方便

 str ="some some    tsometf";

 re = /s+/;

 alert(str.replace(re,"#"));//但这样只会将第一次出现的一堆空白字符替换掉

 //因为一个正则表达式只能进行一次匹配,s+匹配了第一个空格后就退出了

 re = /s+/g;//g,全局标志,将使正则表达式匹配整个字符串

 alert(str.replace(re,"@"));//somesome@

 //另一个与之相似的是split

 var str = "a-bd-c";

 var arr = str.split("-");//返回["a","bd","c"]

 //如果str是用户输入的,他可能输入a-bd-c也可能输入a bd c或a_bd_c,但不会是abdc(这样就说他输错了)

 str = "a_db-c";//用户以他喜欢的方式加分隔符s

 re=/[^a-z]/i;//前面我们说^表示字符开始,但在[]里它表示一个负字符集

 //匹配任何不在指定范围内的任意字符,这里将匹配除字母处的所有字符

 arr = str.split(re);//仍返回["a","bd","c"];

 //在字符串中查找时我们常用indexOf,与之对应用于正则查找的方法是search

 str = "My age is 18.Golden age!";//年龄不是一定的,我们用indexOf不能查找它的位置

 re = /d+/;

 alert(str.search(re));//返回查找到的字符串开始下标10

 //注意,因为查找本身就是出现第一次就立即返回,所以无需在search时使用g标志

 //下面的代码虽然不出错,但g标志是多余的

 re=/d+/g;

 alert(str.search(re));//仍然是10


自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论