工作中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;
} //Email
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经常使用正則表達式【分享】的更多相关文章

  1. js正則表達式语法

    1. 正則表達式规则 1.1 普通字符 字母.数字.汉字.下划线.以及后边章节中没有特殊定义的标点符号,都是"普通字符".表达式中的普通字符,在匹配一个字符串的时候,匹配与之同样的 ...

  2. 正則表達式--js使用案例

    前言:在前端页面使用中.遇到日期格式的验证.開始使用了一款表单控件验证.可是不兼容!!并且使用起来还受到非常大约束.所以就决定自己写原生js. 为了完毕日期格式的验证.第一步,当然是学会使用正則表達式 ...

  3. js正則表達式--验证表单

    检測手机号码:/0? (13|14|15|18)[0-9]{9}/ 检測username:(数字,英文,汉字.下划线.中横线):/^[A-Za-z0-9_\-\u4e00-\u9fa5]+$/ pas ...

  4. js中 正則表達式

    正則表達式使用具体解释 简单介绍 简单的说,正則表達式是一种能够用于模式匹配和替换的强有力的工具.其作用例如以下: 測试字符串的某个模式.比如,能够对一个输入字符串进行測试,看在该字符串是否存在一个电 ...

  5. js正則表達式

    正則表達式實例化的兩種方式: 字符型 var a=// 對象型var a=new RegExp(,) 修飾符: i:忽略大小寫 g:全局搜索 m:多行搜索 元字符: \轉義字符 \w:字符,數字,下劃 ...

  6. jquery+正則表達式验证邮箱格式的样例

    js: $("#email").blur(function(){ //获取id相应的元素的值,去掉其左右的空格 var email = $.trim($('#email').val ...

  7. javascript 正則表達式补充

    定义 JavaScript种正則表達式有两种定义方式,定义一个匹配类似 <%XXX%> 的字符串 1. 构造函数 var reg=new RegExp('<%[^%>]+%&g ...

  8. JavaScript之正則表達式入门

    <html> <head><title>Js String 正則表達式</title><script>//边界符 js 中直接定义须要边界符 ...

  9. 轻松学习JavaScript十四:JavaScript的RegExp对象(正則表達式)

    一RegExp对象概述 RegExp对象表示正則表達式,RegExp是正則表達式的缩写.它是对字符串运行模式匹配的强大工具. RegExp 对象用于规定在文本中检索的内容. 当您检索某个文本时.能够使 ...

随机推荐

  1. 微信支付[v3]

    原文:微信支付[v3] V2升级V3 顺便记录一下 ,文档: http://pay.weixin.qq.com/wiki/doc/api/index.html !!! 支付授权目录与测试人的微信帐号白 ...

  2. Redis util

    主要是字符串通配符匹配和数字与字符串互转的几个函数. // 通配符模式匹配 int stringmatchlen(const char* p, int plen, const char* s, int ...

  3. 将Ojective-C代码移植转换为Swift代码

    相比于Objective-C,Swift语言更加简练.有时我们需要把原来写的一些Objective-C代码转换成Swift,下面总结了各种常见的情况. 1,构造函数的迁移 Objective-C为: ...

  4. Delphi的组件读写机制

    Delphi的组件读写机制(一) 一.流式对象(Stream)和读写对象(Filer)的介绍在面向对象程序设计中,对象式数据管理占有很重要的地位.在Delphi中,对对象式数据管理的支持方式是其一大特 ...

  5. 在Window和Linux下使用Zthread库

    ZThread库是一个开源的跨平台高级面向对象的线性和sycnchronization 库,以运行POSIX 和Win32 系统中的C++程序. ZThread库的主页:http://zthread. ...

  6. CentOS IP丢失,切换了网络连接导致的vmnet8未启用dhcp

    解决了, 这个问题是我在开启虚拟机ubuntu系统的过程中, 在主机win7上切换了网络连接导致的, 就是刚开始我用的无线宽带上网, 此时开启了ubuntu ,然后使用过程中,我在win7上切换回静态 ...

  7. 3xx Redirection

    3xx Redirection This class of status code indicates the client must take additional action to comple ...

  8. ZOJ 1654 二分匹配基础题

    题意: 给你一副图, 有草地(*),空地(o)和墙(#),空地上可以放机器人, 机器人向上下左右4个方向开枪(枪不能穿墙),问你在所有机器人都不相互攻击的情况下能放的最多的机器人数. 思路:这是一类经 ...

  9. poj 3304(直线与线段相交)

    传送门:Segments 题意:线段在一个直线上的摄影相交 求求是否存在一条直线,使所有线段到这条直线的投影至少有一个交点 分析:可以在共同投影处作原直线的垂线,则该垂线与所有线段都相交<==& ...

  10. 【ArcGIS 10.2新特性】ArcGIS 10.2 for Server常见问题

    1.ArcGIS 10.2有无测试版程序? 10.2没有正式的测试版程序,但是我们计划发布两个早期cuts软件给国际经销商.选中的用户和合作伙伴. 2.微软Azure云的ArcGIS forServe ...