千家信息网

经典Javascript正则表达式有哪些

发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,本篇内容介绍了"经典Javascript正则表达式有哪些"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成
千家信息网最后更新 2025年01月31日经典Javascript正则表达式有哪些

本篇内容介绍了"经典Javascript正则表达式有哪些"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

匹配中文字符的正则表达式:

复制代码 代码如下:


[\u4e00-\u9fa5]


匹配双字节字符(包括汉字在内):

复制代码 代码如下:


[^\x00-\xff]


应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)

复制代码 代码如下:


String.prototype.len=function(){ return this.replace([^\x00-\xff]/g,"aa").length; }


匹配空行的正则表达式:

复制代码 代码如下:


\n[\s|]*\r


匹配HTML标记的正则表达式:

复制代码 代码如下:


/<(.*)>.*<\/\1>|<(.*) \/>/


匹配首尾空格的正则表达式:

复制代码 代码如下:


(^\s*)|(\s*$)


应用:javascript中没有像vbscript那样的trim函数,我们就可以利用这个表达式来实现,如下:

复制代码 代码如下:


String.prototype.trim = function()
{
return this.replace(/(^\s*)|(\s*$)/g, "");
}


利用正则表达式分解和转换IP地址
下面是利用正则表达式匹配IP地址,并将IP地址转换成对应数值的Javascript程序:

复制代码 代码如下:


function IP2V(ip)
{
re=/(\d+)\.(\d+)\.(\d+)\.(\d+)/g //匹配IP地址的正则表达式
if(re.test(ip))
{
return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1
}
else
{
throw new Error("Not a valid IP address!")
}
}


不过上面的程序如果不用正则表达式,而直接用split函数来分解可能更简单,程序如下:

复制代码 代码如下:


var ip="10.100.20.168"
ip=ip.split(".")
alert("IP值是:"+(ip[0]*255*255*255+ip[1]*255*255+ip[2]*255+ip[3]*1))


匹配Email地址的正则表达式:

复制代码 代码如下:


\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*


匹配网址URL的正则表达式:

复制代码 代码如下:


http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?


利用正则表达式去除字串中重复的字符的算法程序:[*注:此程序不正确]

复制代码 代码如下:


var s="abacabefgeeii"
var s1=s.replace(/(.).*\1/g,"$1")
var re=new RegExp("["+s1+"]","g")
var s2=s.replace(re,"")
alert(s1+s2) //结果为:abcefgi


*注
===============================
如果var s = "abacabefggeeii"
结果就不对了,结果为:abeicfgg
正则表达式的能力有限
===============================

我原来在CSDN上发贴寻求一个表达式来实现去除重复字符的方法,最终没有找到,这是我能想到的最简单的实现方法。思路是使用后向引用取出包括重复的字符,再以重复的字符建立第二个表达式,取到不重复的字符,两者串连。这个方法对于字符顺序有要求的字符串可能不适用。

得用正则表达式从URL地址中提取文件名的javascript程序,如下结果为page1

复制代码 代码如下:


s="http://blog.penner.cn/page1.htm"
s=s.replace(/(.*\/){ 0, }([^\.]+).*/ig,"$2")
alert(s)


利用正则表达式限制网页表单里的文本框输入内容:

用正则表达式限制只能输入中文:

复制代码 代码如下:


onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste=clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"


用正则表达式限制只能输入全角字符:

复制代码 代码如下:


onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')" onbeforepaste=clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))"


用正则表达式限制只能输入数字:

复制代码 代码如下:


onkeyup="value=value.replace(/[^\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"


用正则表达式限制只能输入数字和英文:

复制代码 代码如下:


onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"


匹配非负整数(正整数 + 0)

复制代码 代码如下:


^\d+$


匹配正整数

复制代码 代码如下:


^[0-9]*[1-9][0-9]*$


匹配非正整数(负整数 + 0)

复制代码 代码如下:


^((-\d+)|(0+))$


匹配负整数

复制代码 代码如下:


^-[0-9]*[1-9][0-9]*$


匹配整数

复制代码 代码如下:


^-?\d+$


匹配非负浮点数(正浮点数 + 0)

复制代码 代码如下:


^\d+(\.\d+)?$


匹配正浮点数

复制代码 代码如下:


^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$


匹配非正浮点数(负浮点数 + 0)

复制代码 代码如下:


^((-\d+(\.\d+)?)|(0+(\.0+)?))$


匹配负浮点数

复制代码 代码如下:


^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$


匹配浮点数

复制代码 代码如下:


^(-?\d+)(\.\d+)?$


匹配由26个英文字母组成的字符串

复制代码 代码如下:


^[A-Za-z]+$


匹配由26个英文字母的大写组成的字符串

复制代码 代码如下:


^[A-Z]+$


匹配由26个英文字母的小写组成的字符串

复制代码 代码如下:


^[a-z]+$


匹配由数字和26个英文字母组成的字符串

复制代码 代码如下:


^[A-Za-z0-9]+$


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

复制代码 代码如下:


^\w+$


匹配email地址

复制代码 代码如下:


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


匹配url

复制代码 代码如下:


^[a-zA-z]+://匹配(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$


匹配html tag

复制代码 代码如下:


<\s*(\S+)(\s[^>]*)?>(.*?)<\s*\/\1\s*>


Visual Basic & C# Regular Expression
1.确认有效电子邮件格式
下面的示例使用静态 Regex.IsMatch 方法验证一个字符串是否为有效电子邮件格式。如果字符串包含一个有效的电子邮件地址,则 IsValidEmail 方法返回 true,否则返回 false,但不采取其他任何操作。您可以使用 IsValidEmail,在应用程序将地址存储在数据库中或显示在 ASP.NET 页中之前,筛选出包含无效字符的电子邮件地址。

[Visual Basic]

复制代码 代码如下:


Function IsValidEmail(strIn As String) As Boolean
' Return true if strIn is in valid e-mail format.
Return Regex.IsMatch(strIn, ("^([\w-\.]+)@((\[[0-9]{ 1,3 }\.[0-9]{ 1,3 }\.[0-9]{ 1,3 }\.)|(([\w-]+\.)+))([a-zA-Z]{ 2,4 }|[0-9]{ 1,3 })(\]?)$")
End Function


[C#]

复制代码 代码如下:


bool IsValidEmail(string strIn)
{
// Return true if strIn is in valid e-mail format.
return Regex.IsMatch(strIn, @"^([\w-\.]+)@((\[[0-9]{ 1,3 }\.[0-9]{ 1,3 }\.[0-9]{ 1,3 }\.)|(([\w-]+\.)+))([a-zA-Z]{ 2,4 }|[0-9]{ 1,3 })(\]?)$");
}


2.清理输入字符串
下面的代码示例使用静态 Regex.Replace 方法从字符串中抽出无效字符。您可以使用这里定义的 CleanInput 方法,清除掉在接受用户输入的窗体的文本字段中输入的可能有害的字符。CleanInput 在清除掉除 @、-(连字符)和 .(句点)以外的所有非字母数字字符后返回一个字符串。

[Visual Basic]

复制代码 代码如下:


Function CleanInput(strIn As String) As String
' Replace invalid characters with empty strings.
Return Regex.Replace(strIn, "[^\w\.@-]", "")
End Function


[C#]

复制代码 代码如下:


String CleanInput(string strIn)
{
// Replace invalid characters with empty strings.
return Regex.Replace(strIn, @"[^\w\.@-]", "");
}


3.更改日期格式
以下代码示例使用 Regex.Replace 方法来用 dd-mm-yy 的日期形式代替 mm/dd/yy 的日期形式。

[Visual Basic]

复制代码 代码如下:


Function MDYToDMY(input As String) As String
Return Regex.Replace(input, _
"\b(?\d{ 1,2 })/(?\d{ 1,2 })/(?\d{ 2,4 })\b", _
"${ day }-${ month }-${ year }")
End Function


[C#]

复制代码 代码如下:


String MDYToDMY(String input)
{
return Regex.Replace(input,"\\b(?\\d{ 1,2 })/(?\\d{ 1,2 })/(?\\d{ 2,4 })\\b","${ day }-${ month }-${ year }");
}


Regex 替换模式
本示例说明如何在 Regex.Replace 的替换模式中使用命名的反向引用。其中,替换表达式 ${ day } 插入由 (?…) 组捕获的子字符串。

有几种静态函数使您可以在使用正则表达式操作时无需创建显式正则表达式对象,而 Regex.Replace 函数正是其中之一。如果您不想保留编译的正则表达式,这将给您带来方便

4.提取 URL 信息
以下代码示例使用 Match.Result 来从 URL 提取协议和端口号。例如,"http://www.penner.cn:8080……将返回"http:8080"。

[Visual Basic]

复制代码 代码如下:


Function Extension(url As String) As String
Dim r As New Regex("^(?\w+)://[^/]+?(?:\d+)?/", _
RegexOptions.Compiled)
Return r.Match(url).Result("${ proto }${ port }")
End Function


[C#]

复制代码 代码如下:


String Extension(String url)
{
Regex r = new Regex(@"^(?\w+)://[^/]+?(?:\d+)?/",
RegexOptions.Compiled);
return r.Match(url).Result("${ proto }${ port }");
}


只有字母和数字,不小于6位,且数字字母都包含的密码的正则表达式
在C#中,可以用这个来表示:

复制代码 代码如下:


"\w{ 6 }(\w+)*"


一个将需要将路径字符串拆分为根目录和子目录两部分的算法程序,考虑路径格式有:C:\aa\bb\cc ,\\aa\bb\cc , ftp://aa.bb/cc 上述路径将分别被拆分为:C:\和aa\bb\cc ,\\aa 和 \bb\cc , ftp:// 和 aa.bb/cc 用javascript实现如下:

复制代码 代码如下:


var strRoot,strSub
var regPathParse=/^([^\\^\/]+[\\\/]+|\\\\[^\\]+)(.*)$/
if(regPathParse.test(strFolder))
{
strRoot=RegExp.$1
strSub=RegExp.$2
}

"经典Javascript正则表达式有哪些"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

代码 字符 表达式 正则 字符串 地址 字母 方法 程序 输入 数字 整数 点数 C# 英文 示例 限制 函数 格式 电子 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 bim数据库项目 增强网络安全意识拒绝沉迷网络 花呗进行服务器功能调整啥意思 读取数据库数据上传到其他数据库 国有企业股份占比数据库 网络安全主题班会小品 大学生的网络安全意识 视觉定位软件开发经验 bak文件如何附加到数据库 互联网高科技英语小短文 机架服务器能做系统么 谷歌学术收录的数据库 井陉新时代软件开发服务装饰 做好网络安全维护工作 关于网络安全的团会主题总结 天玥服务器指示灯 河南c语言软件开发价钱是多少 手机网络安全性低连不上 怎么看数据库表的清理机制 安全风险数据库和信息管理系统 网络安全防护基础不完善 政府网络安全自检自查报告 汽车嵌入式软件开发硕士方向 计算机网络技术大专学哪些课程 bak文件如何附加到数据库 遵义OA软件开发招聘 数据库原理 视频教程下载 网络安全自查表怎么填 安庆蜂王网络技术有限公司 数据库条件值等于null
0