C#和Javascript中 正则表达式使用的总结
说明:本文并非原创,而是从网站上搜集了一些资料整理的!如有雷同,纯属巧合
1、js中正则表达式的使用
在js中定义正则表达式很简单,有两种方式,一种是通过构造函数,一种是通过//,也就是两个斜杠。
例如
(1)构造函数
var re =new RegExp("\\?(\\w{1,}=\\w{1,}&){1,}\\w{1,}=\\w{1,}");
使用构造函数定义正则表达式,注意大小写,负责就会不起作用。由于构造函数的参数是一个字符串,也可以是两个斜杠的方式定义,遇到一些特殊字符就需要使用\进行转义
通过双斜杠的方式定义同样的正则表达式
var re =/\?(\w{1,}=\w{1,}&){1,}\w{1,}=\w{1,}/;
var re =new RegExp( /^\?(\w{1,}=\w{1,}&){1,}\w{1,}=\w{1,}/);
可以和构造函数达到同样的效果,但仔细分析,发现,通过构造函数需要更多的转义字符\
下面是我开发中用到的,我比较喜欢这么使用,感觉好记又方便
var regNameCN = /^[\u4e00-\u9fa5]{0,}$/;//汉子的字符串
var nameCNExp = new RegExp(regNameCN);
var regNameEN = /^[A-Za-z]+$/;//英文字母的字符串
var nameENExp = new RegExp(regNameEN);
if (nameCNExp.test(name)) {
name = name;
} else {
if (!nameENExp.test(name)) {
$("#name_note").text("请核实姓名是否符合英文姓名或中文姓名 ");
$(".ao_main_err").show();
return false;
}
}
-1>test方法 参考上面的例子 正则表达式方法test测试给定的字符串是否满足正则表达式,返回值是bool类型的,只有真和假,如果只是单纯的判断,不需要其他的处理,可以使用尤其是验证时。
function test(){
var text="index.aspx?test=1&ww=2&www=3"; //
var re =/\?(\w{1,}=\w{1,}&){1,}\w{1,}=\w{1,}/;
// var re =new RegExp("\\?(\\w{1,}=\\w{1,}&){1,}\\w{1,}=\\w{1,}");
var result= re.test(text);
if(result)
{
alert("ok");
}else
{
alert("err");
}
}
-2>exec方法 正则表达式方法exec测试给定的字符串是否满足正则表达式,返回匹配到的字符串,如果没有匹配的则返回null,和test基本一致,如果需要获取匹配的各个子字符串,可以使用下标的方式,把上边的test的例子可以改写如下
var regNameEN = /^[A-Za-z]+$/;//英文字母的字符串
var nameENExp = new RegExp(regNameEN);
var result= regNameEN .exec(text);
if(result){
alert(result);
}
function test(){
var text="index.aspx?test=1&ww=2&www=3";
var re = /\?(\w{1,}=\w{1,}&){1,}\w{1,}=\w{1,}/;
// var re =new RegExp( "\\?(\\w{1,}=\\w{1,}&){1,}\\w{1,}=\\w{1,}");
var result= re.exec(text);
if(result)
{
alert("ok");
alert(result); // 是?test=1&ww=2&www=3,ww=2&
alert(result[0]+",0");//是?test=1&ww=2&www=3
alert(result[1]+",1");//是ww=2&
}else
{
alert("err");
}
}
-3>match方法 其实是字符串的方法,但参数确是一个正则表达式,把上边的例子改写后,如下
function test(){
var text="index.aspx?test=1&ww=234"; //
var re = /\?(\w{1,}=\w{1,}&){1,}\w{1,}=\w{1,}/;
// var re2 = "(\\w{1,}=\\w{1,}&){1,}\\w{1,}=\\w{1,}"
var result= text.match(re);
if(result)
{
alert(result);//?test=1&ww=234,test=1&
alert(result[0]+",0");//?test=1&ww=234
alert(result[1]+",1");//test=1&
}else
{
alert("err");
}
}
其实字符串类还有多个函数可以传递正则表达式,split,search,replace等但这些方法已经不适合验证了
下面内容来源于:http://www.cnblogs.com/skylar/p/3673031.html
1、匹配中文字符的正则表达式: [\u4e00-\u9fa5]
评注:匹配中文还真是个头疼的事,有了这个表达式就好办了
2、匹配双字节字符(包括汉字在内):[^\x00-\xff]
评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
3、匹配空白行的正则表达式:\n\s*\r
评注:可以用来删除空白行
4、匹配HTML标记的正则表达式:<(\S*?)[^>]*>.*?</\1>|<.*? />
评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力
5、匹配首尾空白字符的正则表达式:^\s*|\s*$
评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式
6、匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
评注:表单验证时很实用
7、匹配网址URL的正则表达式:[a-zA-z]+://[^\s]*
评注:网上流传的版本功能很有限,上面这个基本可以满足需求
8、匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
评注:表单验证时很实用
9、匹配国内电话号码:\d{3}-\d{8}|\d{4}-\d{7}
评注:匹配形式如 0511-4405222 或 021-87888822
10、匹配腾讯QQ号:[1-9][0-9]{4,}
评注:腾讯QQ号从10000开始
11、匹配中国邮政编码:[1-9]\d{5}(?!\d)
评注:中国邮政编码为6位数字
12、匹配身份证:\d{15}|\d{18}
评注:中国的身份证为15位或18位
13、匹配ip地址:\d+\.\d+\.\d+\.\d+
评注:提取ip地址时有用
14、匹配特定数字:
^[1-9]\d*$ //匹配正整数
^-[1-9]\d*$ //匹配负整数
^-?[1-9]\d*$ //匹配整数
^[1-9]\d*|0$ //匹配非负整数(正整数 + 0)
^-[1-9]\d*|0$ //匹配非正整数(负整数 + 0)
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ //匹配正浮点数
^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ //匹配负浮点数
^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$ //匹配浮点数
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$ //匹配非负浮点数(正浮点数 + 0)
^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$ //匹配非正浮点数(负浮点数 + 0)
评注:处理大量数据时有用,具体应用时注意修正
15、匹配特定字符串:
^[A-Za-z]+$ //匹配由26个英文字母组成的字符串
^[A-Z]+$ //匹配由26个英文字母的大写组成的字符串
^[a-z]+$ //匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$ //匹配由数字和26个英文字母组成的字符串
^\w+$ //匹配由数字、26个英文字母或者下划线组成的字符串
C#和Javascript中 正则表达式使用的总结的更多相关文章
- 详解Javascript中正则表达式的使用
正则表达式用来处理字符串特别好用,在JavaScript中能用到正则表达式的地方有很多,本文对正则表达式基础知识和Javascript中正则表达式的使用做一个总结. 第一部分简单列举了正则表达式在Ja ...
- JavaScript正则表达式详解(二)JavaScript中正则表达式函数详解
二.JavaScript中正则表达式函数详解(exec, test, match, replace, search, split) 1.使用正则表达式的方法去匹配查找字符串 1.1. exec方法详解 ...
- JavaScript中正则表达式判断匹配规则以及常用的方法
JavaScript中正则表达式判断匹配规则以及常用的方法: 字符串是编程时涉及到的最多的一种数据结构,对字符串进行操作的需求几乎无处不在. 正则表达式是一种用来匹配字符串的强有力的武器.它的设计思想 ...
- javascript中正则表达式的基础语法
× 目录 [1]定义 [2]特点 [3]元字符[4]转义字符[5]字符组[6]量词[7]括号[8]选择[9]断言[10]模式[11]优先级[12]局限性 前面的话 正则表达式在人们的印象中可能是一堆无 ...
- python与JavaScript中正则表达式如何转换
使用python爬取网站数据的时候,总会遇到各种各样的反爬虫策略,有很大一部分都和JavaScript(以下简称为JS) 有关.在破解这些JS代码的过程中,经常会遇到模拟JS正则表达式的情况,因此,今 ...
- javascript中正则表达式和ruby中的一点差异
看到一个例子,不过这个例子中正则表达式的格式貌似是错的: Function.prototype.get_name = function(){ return this.name || this.toSt ...
- javascript中正则表达式中的 match,exec,test,replace 之我理解
这个正则 ($&) 的语法: https://msdn.microsoft.com/library/3k9c4a32(v=vs.94).aspx 在ECMAScript中对这几个的说明: ma ...
- Javascript中正则表达式的全局匹配模式
先看一道JavaScript题目,据说是国内某知名互联网企业的JavaScript笔试题,如果对正则的全局匹配模式不了解的话可能会对下面的输出结果感到疑惑. var str = "123#a ...
- 【RegExp】JavaScript中正则表达式判断匹配规则以及常用方法
字符串是编程时涉及到的最多的一种数据结构,对字符串进行操作的需求几乎无处不在. 正则表达式是一种用来匹配字符串的强有力的武器.它的设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符 ...
随机推荐
- TextEdit验证
using System;using System.Collections.Generic;using System.ComponentModel;using System.Drawing;using ...
- 全面解析SQL SERVER 的左右内连接
SQL SERVER数据库的三种常用连接解析: 这里先给出一个官方的解释: left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右 ...
- c++11:iota
iota: Fills the range [first, last) with sequentially(循环的) increasing values, starting with value an ...
- linux传送文件至服务器
scp安全文件拷贝(基于ssh的登陆) 1.你想把本地/home下的文件linux.tar.gz传送至远端服务器10.108.125.30,远端服务器的账号名为name,保存至服务器/home ...
- iframe整理学习笔记
朋友问了一个比较怪的问题,iframe下自适应的问题,因为很少使用iframe的原因,怀着对iframe的疑惑采用了一点点实践;以下frame表示针对的iframe元素 解决的方法:对iframe进行 ...
- JQuery在iframe中实现 点击后选中当前栏目的样式
二级或者三级折叠菜单参考http://www.cnblogs.com/qigege/p/5178947.html <script type="text/javascript" ...
- wpf窗体中复合控件焦点控制
1. 自定义控件 在UserControl标记中 <UserControl KeyboardNavigation.ControlTabNavigation="Local ...
- hi,mongo!(1)
用了很多年的关系型数据库,想换一种思路,学习一下最近比较火的mongo数据库. 一.下载.安装mongo 下载地址:http://www.mongodb.org/downloads(官网) 官网的mo ...
- 一个PHP加密脚本,达到一定免杀效果
<?php /**************************************** *author: L.N. *blog : [url]http://lanu.sinaapp.co ...
- 飞行器的Pitch Yaw Roll概念图解
前进方向为Z轴 Pitch 升降 绕X轴 对应常见Φ(phi)角: Yaw 偏航 绕Y轴 对应常见θ(theta)角: Roll 翻滚 绕Z轴 对应常见φ(psi)角: 对应表: 参考网址NASA: ...