需要指出的是,这里只是总结了正则表达式的常用的且比较简单的语法,而不是全部语法,在我看来,掌握了这些常用语法,已经足够应对日常应用了。正则表达式不只是应用在ECMAScript中,在JAVA、.Net、Unix等也有相应应用,这篇文章则是以ECMAScript中的正则表达式为基础总结的。一、正则表达式基础 1、普通字符:字母、数字、下划线、汉字以及所有没有特殊意义的字符,如ABC123。在匹配时,匹配与之相同的字符。 2、特殊字符:(需要...
/* 判断指定的内容是否为空,若为空则弹出 警告框 */ function isEmpty(theValue, strMsg){ if(theValue==""){ alert(strMsg+"不能为空!"); return true; } return false; } /* 中文判断函数,允许生僻字用英文“*”代替 返回true表示是符合条件,返回false表示不符合 */ function isChinese(str){ var badChar ="ABCDEFGHIJKLMNOPQRSTUVWXYZ"; badChar += "abcdefghijklmnopqrstuvwxyz"; badChar += "0123456789"; badChar += " "...
好了,言归正传。话说我在网上找了很多限制文本框的办法都不尽人意,于是只好自己动手实践了,实践出真知嘛,这句话没错的。 代码如下:function chkPrice(obj){ obj.value = obj.value.replace(/[^\d.]/g,""); //必须保证第一位为数字而不是. obj.value = obj.value.replace(/^\./g,""); //保证只有出现一个.而没有多个. obj.value = obj.value.replace(/\.{2,}/g,"."); //保证.只出现一次,而不能出现两次以上 obj.value = obj.v...
1.修饰符 . 任意一个字符 * 匹配*前面0个或多个字符 + 匹配+前面一个或多个字符 ? 匹配?前面0个或1个字符 ^ 以^后面的字符为前导 $ 以$前面的字符结尾 [] 匹配[]内的一个字符 () 分组,可以用\1 \2提取 [^] 匹配^后的以外的字符 {n} {n}前的字符有n个,n为正数 {n,} {n,}前的字符至少有n个,n为正数 {n,m} {n,m}前的字符有n~m个,n,m为正数 2.字符 \d 一个数字 \D 一个非数字 \w 一个字母或数字 \W 一个非字母和非数字 \s 一个空白...
今天早上到现在,一直在搞一个很愚蠢的问题,竟然一直没发现 如果$str=""; $str = "$str-$sno"; 这样下来,$str前面会有个空格,js获取此值后,必须去掉空格 去空格函数rstr=rstr.replace(/(^\s*)|(\s*$)/g,""); 另: 去左空格replace(/(^\s*)/g, ""); 去右空格replace(/(\s*$)/g, ""); 另外,如果进行程序流程的一步一步核对,在if处停下是,一定要同时输出if里面的两个值,进行对比,或者在前面加上#来看是否有空格 总结一下 1、...
首先,什么事正则表达式呢,其实引入概念很多时候并不能帮我们明白它到底是什么,所以我先简单描述下,正则表达式,其实就是一个记录字符串规则则的字符串,等我们看完这一部分,也就能明白它到底是什么了。 基本语法:正则表达式就是“/expression/”+表示搜索范围的符号。例如我们要找function这个关键词,就是/function/gi,其中g表示global,就是全局搜索,i表示ignor,就是忽略大小写。 在js中,我们通过RegExp类来实现。 这个...
常用到的元字符有: . 查找单个字符,除了换行和行结束符; \w 匹配字母、汉字、数字、下划线等符号; \s 匹配空白符(包含空格、制表符等); \d 匹配数字; \b 匹配位于单词的开头或结尾的匹配; 常用的量词有: ^n 匹配任何开头为 n 的字符串; n$ 匹配任何结尾为 n 的字符串; n+ 匹配任何包含至少一个 n 的字符串; n* 匹配任何包含零个或多个 n 的字符串; n? 匹配任何包含零个或一个 n 的字符串; n{X} 匹配包含 X 个 n 的序列...
alert("abacacf".replace('a','9')); alert("abacacf".replace(/a/g,'9')); 第一个运行的结果 9bacaf 这个只是替换了第一个 第二个运行的结果 9b9c9f 这个能实现js的全部替换功能 其实第二个的意思就是用正则表达式实现全局的替换 g 代表 gobal 另附:带有特殊符号的全局替换 代码如下:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> New Document </TITLE> <META NAME="Generator" CONT...
我们详细描述: 1)对于表达式对象的exec方法,不加入g,则只返回第一个匹配,无论执行多少次均是如此,如果加入g,则第一次执行也返回第一个匹配,再执行第二个匹配,依次类推。例如: 代码如下:var regx=/user\d/; var str=”user18duser2dsc”; var rs=regx.exec(str);//此时rs的值为{user1} var rs2=regx.exec(str);//此时rs的值依然是{user1} 如果regx=/user\d/g:则rs的值为{user1},rs2的值为{user2} 通过这个例子说明...
不能为空 <input onblur="if(this.value.replace(/^ +| +$/g,)==)alert(不能为空!)"> 只能输入英文和数字<input onblur="if(/[^0-9a-zA-Z]/g.test(value))alert(有错)"><input onkeyup="value=value.replace(/[^0-9a-zA-Z]/g,)"/><input type="text" onkeyup="value=value.replace(/[^\a-\z\A-\Z0-9]/g,)"> 判断字符由字母和数字,下划线,点号组成.且开头的只能是下划线和字母 /^([a-zA-z_]{1})([\w]*)$/g.test(str) 只能输入数字<...
正则表达式的直接变量字符: 字符 匹配\o NUL字符\t 制表符\n 换行符\v 垂直制表符\f 换页符\r 回车\xnn 由十六进制nn指定的拉丁符,比如:\x0A等价于\n\uxxxx unicode字符\cX 控制字符^X 正则表达式的js引用:var sEnd=new RegExp("s$"); ——以s为结尾的字符串匹配 function Verify() { //获取需验证的值,正则表达式 var InforString = document.getElementById("textInfor").value; var RuleString = document.getEleme...
一般情况下我们可能会用到正则表达式去替换文本: 代码如下:var a = "abc123aXc"; a.replace(/a.c/g, ZZ); 我们可以用函数来定义高级替换,而不是一个简单的字符串。比如: function reverseMatch(str) { return str.split('').reverse().join(''); } var a = "www jb51 net"; a=a.replace(/\w+/g, reverseMatch); alert(a); [/code] 执行结果为: 代码如下: www 15bj ten [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]...
RegExp类 RegExp对象的构造函数可以带一个或两个参数 第一个参数是描述需要进行匹配的模式字符串,如果还有第二个参数,这个参数则制定了额外的处理指令。 一、基础 1.1使用RegExp对象 test()方法 测试是否匹配。如果给定字符串(只有一个参数)匹配这个模式,它就返回true,否则返回false 代码如下:var sToMatch = "cat"; var reCat = /cat/; //正则表达式字面量使用Perl风格的语法 alert(reCat.test(sToMatch)); //outs "true" exe...
window.location.pathname 比如: /windows/location/page.html 我想得到“windows”,请问用正则表达式怎么写? var a="/windows/location/page.html"; var reg=/(^(http[s]?:\/\/[^\/]*\/)|(^\/))([^\/]+)\/.*$/ig; var t=a.replace(reg,"$4"); alert(a + "\n" + "\n" + t); var a=top.location + "/windows/location/page.html"; var t=a.replace(reg,"$4"); alert(a + "\n" + "\n" + t); alert(top.location + "\n" + "...
一般情况下用正则写法为: //[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]如果遇到大数据的变长字符串的话就会发现这个是很耗资源的。效率并不高,有的时候甚至无法忍受。/**/请在这里写足够多的空格或者tab字符。 //[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]在解释这个原因的时候想起以前看到master regular expression里面有提到过。NFA和DFA的引擎是有区别的。js/perl/php/java/.net都是NFA引擎。 而DFA与NFA机制上的不...