JS经常使用正則表達式【分享】
工作中JS经常使用表达式:
1)2010-09-10类型日期校验
2)推断正整数。字符串长度
3)校验长度,和是否空
4)推断字符串是否为空
5)比較字符大小
6)推断字符串长度
7)推断格式是否为Email格式
8)推断是否为两位小数
9)推断是否包括中文
10)推断是否包括字符串
11)推断是否为数字
12)推断是否为正整数
13)推断英文字符跟数字组合
14)IP格式推断
Ext.require(['*']); /***
* 日期校验
* @param {} num
* @return {}
*/
function testDate(newdate){
alert(newdate);
var startime=Ext.util.Format.date(newdate,'Y-m-d H:m:s');
var startDateTemp = startime.split(" ");
reg=/^([1-2]\d{3})[\/|\-](0? [1-9]|10|11|12)[\/|\-]([1-2]? [0-9]|0[1-9]|30|31)$/;
if(!startDateTemp[0].match(reg)){
Ext.Msg.alert("系统提示","请选择正确的日期格式如:2010-09-10!!");
return false;
}
return true;
} //推断正整数。字符串长度
function checkNumAndLen(abc,lenNum)
{
//推断空
if(!checkNull(abc)) {
//推断正整数
var reg = /^[0-9]+[0-9]*]*$/; //推断字符串是否为数字 /^[0-9]+.? [0-9]*$/
if (!abc.match(reg))
{
return false;
}
return checkLenth(abc,lenNum);
}
return false;
} //推断正整数,字符串长度
function checkNumAndNumLen(abc,lenNum) {
//推断空
if(!checkNull(abc)) {
//推断正整数
var pattern = /^[0-9]+[0-9]*]*$/; //推断字符串是否为数字 /^[0-9]+.?[0-9]*$/
if (pattern.test(abc)){
if(abc.length <= lenNum){
return false;
}else{
return true;
}
}else{
return true;
}
}else{
return true;
}
} //校验长度。和是否空
//校验成功返回true 失败false
function checkNullAndLength(abc,num) {
if(!checkNull(abc)) {
return checkLenth(abc,num);
}
return false;
} //推断是否为空
function checkNull(abc) {
if(abc == null || abc.replace(/^\s\s*/, '' ).replace(/\s\s*$/, '' ).length == 0) {
return true;
}
return false;
} /**
* 比較大小
* @param from
* @param to
* @returns {Number}
*/
function compare(from,to){ if(from>to){
return 1;
}else if(from==to){
return 0;
}else if(from<to){
return -1;
} } //推断字符串长度
function checkLenth(abc,lenNum) {
if(lenNum == 0 || abc == null) {
return true;
} var l = 0;
var a = abc.split(""); for (var i=0;i<a.length;i++) {
if (a[i].charCodeAt(0)<299) {
l++;
}
else
{
l+=2;
}
}
if(l > lenNum) {
return false;
}
return true; } //电话号码
function checkPhone(strNumber)
{
var pattern = /^\d{0,20}$/;
if(strNumber==null||strNumber==""){
return true;
}else{
if(pattern.test(strNumber)){
return true;
}
} return false;
function checkEmail(strEmail)
{
var pattern = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/;
if(pattern.test(strEmail))
return true;
return false;
} //2位小数
function isDecimal(value){
if(value == null)
return false; var v = value; var pattern = /^[1-9]+\.\d{1,2}$/;
flag = pattern.test(v); if(!flag){ //obj.value = obj.value + ".00";
//obj.select();
//obj.focus();
return false;
}else{
return true;
}
} //是否包括中文
//true: 包括中文 false:不包括中文
function checkChinese(str){
if (escape(str).indexOf("%u") != -1) {
return true;
}
else {
return false;
}
} //是否包括特殊字符
function checkQuote(str){
var items = new Array("~", "`", "!", "@", "#", "$", "%", "^", "&", "*", "{", "}", "[", "]", "(", ")","'");
items.push(":", ";", "’", "|", "\\", "<", ">", "?", "/", "<<", ">>", "||", "//");
items.push("admin", "administrators", "administrator");
items.push("select", "delete", "update", "insert", "create", "drop", "alter", "trancate");
str = str.toLowerCase();
for (var i = 0; i < items.length; i++) {
if (str.indexOf(items[i]) >= 0) {
return true;
}
}
return false;
} //是否是数字
function checkNum(str){
var pattern = /^[0-9]*$/;
if(pattern.test(str)){
return false;
}else{
return true;
}
} //是否是正整数
function checkPositiveNum(str){
//推断空
if(!checkNull(str)) {
//推断正整数
var reg = /^[1-9]+[0-9]*]*$/; //推断字符串是否为数字 /^[0-9]+.?[0-9]*$/
if (str.match(reg)){
return false;
}else{
return true;
}
}
return true;
} /**
* 推断文件格式是否正确
* @param {Object} str
* @return {TypeName}
*/
function checkFile(str){
//验证图片文件的正则
var img_reg = /\.([vV][mM]){1}$/;
if(str.match(img_reg)){
return false;
}else{
return true;
}
} /**
* 推断文件格式是否正确
* @param {Object} str
* @return {TypeName}
*/
function checkFileExcel(str){
//验证图片文件的正则
var img_reg = /\.([xX][lL][sS]){1}$/;
if(str.match(img_reg)){
return false;
}else{
return true;
}
} //仅仅能是英文字符跟数字组合
function checkatandnumber(str,strlength){ var qtype=/^[A-Za-z0-9]+$/;
if(str.match(qtype)){
if(!checkLenth(str,strlength)){
return false;
}else{
return true;
} }else{
return false;
}
} /**
* IP格式推断
* @param {Object} str
* @param {Object} strlength
* @return {TypeName}
*/
function checkIp(str){
var pattern = /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/;
if(pattern.test(str)){
return false;
}else{
return true;
}
}
JS经常使用正則表達式【分享】的更多相关文章
- js正則表達式语法
1. 正則表達式规则 1.1 普通字符 字母.数字.汉字.下划线.以及后边章节中没有特殊定义的标点符号,都是"普通字符".表达式中的普通字符,在匹配一个字符串的时候,匹配与之同样的 ...
- 正則表達式--js使用案例
前言:在前端页面使用中.遇到日期格式的验证.開始使用了一款表单控件验证.可是不兼容!!并且使用起来还受到非常大约束.所以就决定自己写原生js. 为了完毕日期格式的验证.第一步,当然是学会使用正則表達式 ...
- js正則表達式--验证表单
检測手机号码:/0? (13|14|15|18)[0-9]{9}/ 检測username:(数字,英文,汉字.下划线.中横线):/^[A-Za-z0-9_\-\u4e00-\u9fa5]+$/ pas ...
- js中 正則表達式
正則表達式使用具体解释 简单介绍 简单的说,正則表達式是一种能够用于模式匹配和替换的强有力的工具.其作用例如以下: 測试字符串的某个模式.比如,能够对一个输入字符串进行測试,看在该字符串是否存在一个电 ...
- js正則表達式
正則表達式實例化的兩種方式: 字符型 var a=// 對象型var a=new RegExp(,) 修飾符: i:忽略大小寫 g:全局搜索 m:多行搜索 元字符: \轉義字符 \w:字符,數字,下劃 ...
- jquery+正則表達式验证邮箱格式的样例
js: $("#email").blur(function(){ //获取id相应的元素的值,去掉其左右的空格 var email = $.trim($('#email').val ...
- javascript 正則表達式补充
定义 JavaScript种正則表達式有两种定义方式,定义一个匹配类似 <%XXX%> 的字符串 1. 构造函数 var reg=new RegExp('<%[^%>]+%&g ...
- JavaScript之正則表達式入门
<html> <head><title>Js String 正則表達式</title><script>//边界符 js 中直接定义须要边界符 ...
- 轻松学习JavaScript十四:JavaScript的RegExp对象(正則表達式)
一RegExp对象概述 RegExp对象表示正則表達式,RegExp是正則表達式的缩写.它是对字符串运行模式匹配的强大工具. RegExp 对象用于规定在文本中检索的内容. 当您检索某个文本时.能够使 ...
随机推荐
- 微信支付[v3]
原文:微信支付[v3] V2升级V3 顺便记录一下 ,文档: http://pay.weixin.qq.com/wiki/doc/api/index.html !!! 支付授权目录与测试人的微信帐号白 ...
- Redis util
主要是字符串通配符匹配和数字与字符串互转的几个函数. // 通配符模式匹配 int stringmatchlen(const char* p, int plen, const char* s, int ...
- 将Ojective-C代码移植转换为Swift代码
相比于Objective-C,Swift语言更加简练.有时我们需要把原来写的一些Objective-C代码转换成Swift,下面总结了各种常见的情况. 1,构造函数的迁移 Objective-C为: ...
- Delphi的组件读写机制
Delphi的组件读写机制(一) 一.流式对象(Stream)和读写对象(Filer)的介绍在面向对象程序设计中,对象式数据管理占有很重要的地位.在Delphi中,对对象式数据管理的支持方式是其一大特 ...
- 在Window和Linux下使用Zthread库
ZThread库是一个开源的跨平台高级面向对象的线性和sycnchronization 库,以运行POSIX 和Win32 系统中的C++程序. ZThread库的主页:http://zthread. ...
- CentOS IP丢失,切换了网络连接导致的vmnet8未启用dhcp
解决了, 这个问题是我在开启虚拟机ubuntu系统的过程中, 在主机win7上切换了网络连接导致的, 就是刚开始我用的无线宽带上网, 此时开启了ubuntu ,然后使用过程中,我在win7上切换回静态 ...
- 3xx Redirection
3xx Redirection This class of status code indicates the client must take additional action to comple ...
- ZOJ 1654 二分匹配基础题
题意: 给你一副图, 有草地(*),空地(o)和墙(#),空地上可以放机器人, 机器人向上下左右4个方向开枪(枪不能穿墙),问你在所有机器人都不相互攻击的情况下能放的最多的机器人数. 思路:这是一类经 ...
- poj 3304(直线与线段相交)
传送门:Segments 题意:线段在一个直线上的摄影相交 求求是否存在一条直线,使所有线段到这条直线的投影至少有一个交点 分析:可以在共同投影处作原直线的垂线,则该垂线与所有线段都相交<==& ...
- 【ArcGIS 10.2新特性】ArcGIS 10.2 for Server常见问题
1.ArcGIS 10.2有无测试版程序? 10.2没有正式的测试版程序,但是我们计划发布两个早期cuts软件给国际经销商.选中的用户和合作伙伴. 2.微软Azure云的ArcGIS forServe ...