自己整理的正则表达式(附简单的正则表达式判断器)
一、整数、字母、时间正则表达式
"^\d+$" //非负整数(正整数 + 0,可以有空格)
"^[0-9]\d*$" //非负整数(正整数 + 0,不能有空格)
"^[0-9]*[1-9][0-9]*$" //正整数(0不是正整数,第一位数字为0时也会判断是正整数,如001是)
"^[1-9]\d*$" //正整数(0不是正整数,第一位数字为0时会判断不是正整数,如001不是)
"^((-\\d+)|(0+))$" //非正整数(负整数 + 0)
"^-[0-9]*[1-9][0-9]*$" //负整数
"^-?\\d+$" //整数
"^\\d+(\\.\\d+)?$" //非负浮点数(正浮点数 + 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+)?)|(0+(\\.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+)?$" //浮点数
"^[A-Za-z]+$" //由26个英文字母组成的字符串
"^[A-Z]+$" //由26个英文字母的大写组成的字符串
"^[a-z]+$" //由26个英文字母的小写组成的字符串
"^[A-Za-z0-9]+$" //由数字和26个英文字母组成的字符串
"^\\w+$" //由数字、26个英文字母或者下划线组成的字符串
"^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$" //email地址
"^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$" //url
"^[a-zA-Z_-\s]*$" //由26个英文字母和下划线、中划线、空格组成的字符串
"\d" //至少包含一个数字
"([0-1]\d|2[0-3]):[0-5]\d:[0-5]\d" //时间格式:小时是00-23,分钟是00-59,秒钟00-59
"^([01](\.0+)?|0\.[0-9]+)$" //大于等于0并且小于等于1的数
"^([A-Za-z-\s]|[\u4E00-\u9FA5])+$" //由中文、英文字母、中划线、空格组成的字符串
"^([A-Za-z]|[\u4E00-\u9FA5])+$" //由中文、英文字母组成的字符串
二、小技巧
"^([0-9]\d{0,1}[.][0-9]\d{1,2})$" //判断小数点前是一到两位数字,小数点后是二到三位数字的小数
备注:\d{0,1}代表一到两位数字,小数点后的\d{1,2}代表二到三位数字,小数点后的\d{1,2}去掉代表默认一位。
"^([0-9]\d{0,1}[.][0-9])$" //判断小数点前是一到二位数字,小数点后是一位数字的小数
"^[+]{0,1}[1-9]\d*$" //判断第一位是加号的整数或者纯整数
"^[+][1-9]\d*$" //判断第一位是加号的整数
"^([01](\.0+)?|0\.[0-9]\d{0,1})$" //判断0-1之间的小数(包含0和1),并且小数点后最多保留两位
"^([01](\.0+)?|0\.[0-9]+)$" //判断0-1之间的小数(包含0和1),小数点后位数没有限制
三、JS中使用
(1)js中replace(/\s/g,"")
意思是 把字符串中所有的空格去掉。
这个函数是js的字符串替换函数,这个函数有两个参数,第一个函数可以是字符串或正则表达式(用以进行匹配的子字符串),第二个函数是字符串(替换匹配的子字符串)。就是在原字符串上把和第一个参数相同的字符串替换成第二个参数的字符串。
这个例子使用的是正则表达式匹配字符串,其中
1.”/ /”这个是固定写法,
2.”\s”是转移符号用以匹配任何空白字符,包括空格、制表符、换页符等等,
3.”g”表示全局匹配将替换所有匹配的子串,如果不加”g”当匹配到第一个后就结束了。
这个例子的意思就是将原字符串中的所有空白字符替换成”“,比如”abc d efg “字样的字符串使用这个函数后将变成”abcdefg”。
4.replace(/(^\s*)|(\s*$)/g,"")是去掉开头和结尾的空格,中间的空格不去掉。
(2)判断整数
var re = /^[1-9]\d*$/; var txtICCardOut = "102.5 "; if (!re.test(txtICCardOut.replace(/\s+/g,''))) { alert("卡号必须为数字 !"); return false; } var reg = new RegExp("^([1-9]|[1-9]\\d|100)$"); var a=101; if(!reg.test(a)) { alert("请输入1-100的整数!") } var reg = new RegExp("^(\\d|[1-9]\\d|100)$"); var a=101; if(!reg.test(a)) { alert("请输入0-100的整数!") }
(3)JS 正则表达式 获取小括号 中括号 花括号内的内容
var str="123{xxxx}456[我的]789123[你的]456(1389090)789"; var regex1 = /\((.+?)\)/g; // () 小括号 var regex2 = /\[(.+?)\]/g; // [] 中括号 var regex3 = /\{(.+?)\}/g; // {} 花括号,大括号 // 输出是一个数组 console.log(str.match(regex1)); console.log(str.match(regex2)); console.log(str.match(regex3));
var regex = /(?!\()([^\(\)]*)(?=\))/g; //取最后一个()中的内容,如:(30),则取30 var str1="123(XXX)456(CCC)789"; var str2=str1.match(regex); //获取所有()中的内容 console.log(str2[str2.length - 2]); //获取最后一个()中的内容
四、C#中使用
判断str是否是正整数
string str = "zty"; System.Text.RegularExpressions.Regex.IsMatch(str, "^[0-9]*[1-9][0-9]*$")
去除最后一个小数点后面的字符
string input = "1234567890."; // 输入的字符串 Regex regex = new Regex(@"\.\d+$"); // 定义正则表达式,匹配最后一个小数点及其之后的所有字符 Match match = regex.Match(input); // 进行匹配操作 if (match.Success) { string result = input.Remove(match.Index); // 移除匹配到的部分 Console.WriteLine("结果为:" + result); } else { Console.WriteLine("没有找到需要删除的部分!"); }
附件:
简单的正则表达式判断器:正则表达式判断.rar