正则表达式是一个考验每个程序员记忆力的功能,大家都经历过忘了再记,记了再忘的痛苦,在这里试图先通过一个简单的表格方式来呈现它,然后再慢慢品味,消化它。

1.符号表

名称符号读音功能
定界符/love/右斜杠位于“/”定界符之间的部分就是将要在目标对象中进行匹配的模式
元字符所谓元字符就是指那些在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前面的字符)在目标对象中的出现模式
+加号“+”元字符规定其前导字符必须在目标对象中连续出现一次多次,
*星花“*”元字符规定其前导字符必须在目标对象中出现零次连续多次
?问号“?”元字符规定其前导对象必须在目标对象中连续出现零次一次
\s左斜杠小s“\s”用于匹配单个空格符,包括tab键和换行
\S左斜杠大s“\S”用于匹配除单个空格符之外的所有字符
\d左斜杠小d“\d”用于匹配从0到9的数字
\w左斜杠小w“\w”用于匹配字母数字下划线字符
\W左斜杠大w“\W”用于匹配所有与\w不匹配的字符
.“.”用于匹配除换行符之外的所有字符
定位符定位符用于规定匹配模式在目标对象中的出现位置
^尖帽“^”定位符规定匹配模式必须出现在目标字符串的开头
$美元符“$”定位符规定匹配模式必须出现在目标对象的结尾
\b左斜杠小b“\b”定位符规定匹配模式必须出现在目标字符串的开头或结尾的两个边界之一
\B左斜杠大B“\B”定位符则规定匹配对象必须位于目标字符串的开头和结尾两个边界之内,即匹配对象既不能作为目标字符串的开头,也不能作为目标字符串的结尾
频率符{}左花括号右花括号“{}”可以精确指定模式在匹配对象中出现的频率
范围符[A-Z]左中括号右中括号“[]”允许使用者在匹配模式中指定某一个范围而不局限于具体的字符
同时出现符()左圆括号右圆括号“()”符号包含的内容必须同时出现在目标对象中
运算符|竖杠可以使用管道符 “|”实现类似编程逻辑中的“或”运算
[^]左中括号尖帽右中括号否定符 “[^]”规定目标对象中不能存在模式中所规定的字符串
转义符\左斜杠当需要在正则表达式的模式中加入元字符,并查找其匹配对象时,可以使用转义符“\”

 

2.基本语法

  很枯燥,但是不是天书,只要耐着性子就能搞懂。下面基本就是围绕上面表格内容进一步阐述,再加上少许的例子说明。

  正则表达式的形式一般如:/love/,今天才明白这种叫“直接量语法”,还有一种叫RegExp构造函数,貌似这两种是差不多的。“直接量语法”的格式形如/pattern/attributes,RegExp构造函数的个数形如new RegExp(pattern,attributes)

  其中位于“/”定界符之间的部分就是将要在目标对象中进行匹配的模式。用户只要把希望查找匹配对象的模式内容放入“/”定界符之间即可。为了能够使用户更加灵活的定制模式内容,正则表达式提供了专门的“元字符”。所谓元字符就是指那些在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前面的字符)在目标对象中的出现模式。

  较为常用的元字符包括: “+”, “*”,以及 “?”。其中,“+”元字符规定其前导字符必须在目标对象中连续出现一次或多次,“*”元字符规定其前导字符必须在目标对象中出现零次或连续多次,而“?”元字符规定其前导对象必须在目标对象中连续出现零次或一次。
下面,就让我们来看一下正则表达式元字符的具体应用。

  /fo+/因为上述正则表达式中包含“+”元字符,表示可以与目标对象中的 “fool”, “fo”, 或者 “football”等在字母f后面连续出现一个或多个字母o的字符串相匹配。
/eg*/因为上述正则表达式中包含“*”元字符,表示可以与目标对象中的 “easy”, “ego”, 或者 “egg”等在字母e后面连续出现零个或多个字母g的字符串相匹配。
/Wil?/因为上述正则表达式中包含“?”元字符,表示可以与目标对象中的 “Win”, 或者 “Wilson”,等在字母i后面连续出现零个或一个字母l的字符串相匹配。

  除了元字符之外,用户还可以精确指定模式在匹配对象中出现的频率。例如,/jim{2,6}/上述正则表达式规定字符m可以在匹配对象中连续出现2-6次,因此,上述正则表达式可以同jimmy或jimmmmmy等字符串相匹配。

  在对如何使用正则表达式有了初步了解之后,我们来看一下其它几个重要的元字符的使用方式。
\s:用于匹配单个空格符,包括tab键和换行符;
\S:用于匹配除单个空格符之外的所有字符;
\d:用于匹配从0到9的数字;
\w:用于匹配字母,数字或下划线字符;
\W:用于匹配所有与\w不匹配的字符;
. :用于匹配除换行符之外的所有字符。
(说明:我们可以把\s和\S以及\w和\W看作互为逆运算)

下面,我们就通过实例看一下如何在正则表达式中使用上述元字符。

  /\s+/上述正则表达式可以用于匹配目标对象中的一个或多个空格字符。
/\d000/如果我们手中有一份复杂的财务报表,那么我们可以通过上述正则表达式轻而易举的查找到所有总额达千元的款项。

  除了我们以上所介绍的元字符之外,正则表达式中还具有另外一种较为独特的专用字符,即定位符。定位符用于规定匹配模式在目标对象中的出现位置。较为常用的定位符包括: “^”, “$”, “\b” 以及 “\B”。其中,“^”定位符规定匹配模式必须出现在目标字符串的开头,“$”定位符规定匹配模式必须出现在目标对象的结尾,\b定位符规定匹配模式必须出现在目标字符串的开头或结尾的两个边界之一,而“\B”定位符则规定匹配对象必须位于目标字符串的开头和结尾两个边界之内,即匹配对象既不能作为目标字符串的开头,也不能作为目标字符串的结尾。同样,我们也可以把“^”和“$”以及“\b”和“\B”看作是互为逆运算的两组定位符。举例来说:

  /^hell/因为上述正则表达式中包含“^”定位符,所以可以与目标对象中以 “hell”, “hello”或 “hellhound”开头的字符串相匹配。
/ar$/因为上述正则表达式中包含“$”定位符,所以可以与目标对象中以 “car”, “bar”或 “ar” 结尾的字符串相匹配。
/\bbom/因为上述正则表达式模式以“\b”定位符开头,所以可以与目标对象中以 “bomb”, 或 “bom”开头的字符串相匹配。
/man\b/因为上述正则表达式模式以“\b”定位符结尾,所以可以与目标对象中以 “human”, “woman”或 “man”结尾的字符串相匹配。

为了能够方便用户更加灵活的设定匹配模式,正则表达式允许使用者在匹配模式中指定某一个范围而不局限于具体的字符。例如:
/[A-Z]/上述正则表达式将会与从A到Z范围内任何一个大写字母相匹配。
/[a-z]/上述正则表达式将会与从a到z范围内任何一个小写字母相匹配。
/[0-9]/上述正则表达式将会与从0到9范围内任何一个数字相匹配。
/([a-z][A-Z][0-9])+/上述正则表达式将会与任何由字母和数字组成的字符串,如 “aB0” 等相匹配。这里需要提醒用户注意的一点就是可以在正则表达式中使用 “()” 把字符串组合在一起。“()”符号包含的内容必须同时出现在目标对象中。因此,上述正则表达式将无法与诸如 “abc”等的字符串匹配,因为“abc”中的最后一个字符为字母而非数字。

  如果我们希望在正则表达式中实现类似编程逻辑中的“或”运算,在多个不同的模式中任选一个进行匹配的话,可以使用管道符 “|”。例如:/to|too|2/,上述正则表达式将会与目标对象中的 “to”, “too”, 或 “2” 相匹配。正则表达式中还有一个较为常用的运算符,即否定符 “[^]”。与我们前文所介绍的定位符 “^” 不同,否定符 “[^]”规定目标对象中不能存在模式中所规定的字符串。例如:/[^A-C]/,上述字符串将会与目标对象中除A,B,和C之外的任何字符相匹配。一般来说,当“^”出现在 “[]”内时就被视做否定运算符;而当“^”位于“[]”之外,或没有“[]”时,则应当被视做定位符。最后,当用户需要在正则表达式的模式中加入元字符,并查找其匹配对象时,可以使用转义符“\”。例如:/Th\*/上述正则表达式将会与目标对象中的“Th*”而非“The”等相匹配。

 

3.举例说明

  再者只能多看写例子,消化消化了。

  “^The”:开头一定要有”The”字符串;“of despair$”:结尾一定要有”of despair” 的字符串;那么,“^abc$”:就是要求以abc开头和以abc结尾的字符串,实际上是只有abc匹配;“notice”:匹配包含notice的字符串;接着,说说 ‘*’ ‘+’ 和 ‘?’,他们用来表示一个字符可以出现的次数或者顺序,他们分别表示:

  “zero or more”相当于{0,}
“one or more”相当于{1,}
“zero or one.”相当于{0,1}

这里是一些例子:

  “ab*”:和ab{0,}同义,匹配以a开头,后面可以接0个或者N个b组成的字符串(”a”, “ab”, “abbb”, 等);
“ab+”:和ab{1,}同义,同上条一样,但最少要有一个b存在 (”ab” “abbb”等);
“ab?”:和ab{0,1}同义,可以没有或者只有一个b;
“a?b+$”:匹配以一个或者0个a再加上一个以上的b结尾的字符串。

要点:’*’ ‘+’ 和 ‘?’ 只管它前面那个字符。你也可以在大括号里面限制字符出现的个数,比如:

  “ab{2}”: 要求a后面一定要跟两个b(一个也不能少)(”abb”);
“ab{2,}”: 要求a后面一定要有两个或者两个以上b(如”abb” “abbbb” 等);
“ab{3,5}”: 要求a后面可以有2-5个b(”abbb”, “abbbb”, or “abbbbb”)。

现在我们把一定几个字符放到小括号里,比如:

  “a(bc)*”: 匹配 a 后面跟0个或者一个”bc”;
“a(bc){1,5}”: 一个到5个 “bc”;

还有一个字符 ‘|’,相当于OR操作:

  “hi|hello”: 匹配含有”hi” 或者 “hello” 的 字符串;
“(b|cd)ef”: 匹配含有 “bef” 或者 “cdef”的字符串;
“(a|b)*c”: 匹配含有这样多个(包括0个)a或b,后面跟一个c的字符串;

一个点(’.’)可以代表所有的单一字符,不包括”\n”如果,要匹配包括”\n”在内的所有单个字符,怎么办?用’[\n.]’这种模式。

  “a.[0-9]”: 一个a加一个字符再加一个0到9的数字;
“^.{3}$”: 三个任意字符结尾。

中括号括住的内容只匹配一个单一的字符

  “[ab]”: 匹配单个的 a 或者 b ( 和 “a│b” 一样);
“[a-d]”: 匹配’a’ 到’d’的单个字符 (和”a│b│c│d” 还有 “[abcd]”效果一样);

一般我们都用[a-zA-Z]来指定字符为一个大小写英文:

  “^[a-zA-Z]”: 匹配以大小写字母开头的字符串;
“[0-9]%”: 匹配含有 形如 x% 的字符串;
“,[a-zA-Z0-9]$”: 匹配以逗号再加一个数字或字母结尾的字符串;

  也可以把你不想要得字符列在中括号里,你只需要在总括号里面使用’^’ 作为开头 “%[^a-zA-Z]%” 匹配含有两个百分号里面有一个非字母的字符串。要点:^用在中括号开头的时候,就表示排除括号里的字符。不要忘记在中括号里面的字符是这条规路的例外—在中括号里面,所有的特殊字符,包括(”),都将失去他们的特殊性质 “[*\+?{}.]”匹配含有这些字符的字符串:正如regx的手册告诉我们:”如果列表里含有’]’,最好把它作为列表里的第一个字符(可能跟在’^’后面)。如果含有’-’,最好把它放在最前面或者最后面, or 或者一个范围的第二个结束点[a-d-0-9]中间的‘-’将有效。花括号中的要注意的是,n和m都不能为负整数,而且n总是小于m。这样,才能 最少匹配n次且最多匹配m次。如”p{1,5}”将匹配 “pvpppppp”中的前五个p。

  构建一个匹配模式去检查输入的信息是否为一个表示money的数字。我们认为一个表示money的数量有四种方式:”10000.00″ 和 “10,000.00″,或者没有小数部分,”10000″ and “10,000″。现在让我们开始构建这个匹配模式:

^[1-9][0-9]*$
这是所变量必须以非0的数字开头。但这也意味着单一的”0″也不能通过测试。以下是解决的方法:

^(0|[1-9][0-9]*)$
“只有0和不以0开头的数字与之匹配”,我们也可以允许一个负号在数字之前:

^(0|-?[1-9][0-9]*)$
这就是:0或者一个以0开头且可能有一个负号在前面的数字。好了,现在让我们别那么严谨,允许以0开头。现在让我们放弃负号,因为我们在表示钱币的时候并不需要用到。我们现在指定模式用来匹配小数部分:

^[0-9]+(\.[0-9]+)?$
这暗示匹配的字符串必须最少以一个阿拉伯数字开头。但是注意,在上面模式中 “10.” 是不匹配的, 只有 “10″ 和 “10.2″ 才可以,为什么?

^[0-9]+(\.[0-9]{2})?$
我们上面指定小数点后面必须有两位小数。如果你认为这样太苛刻,你可以改成:^[0-9]+(\.[0-9]{1,2})?$。这将允许小数点后面有一到两个字符。现在我们加上用来增加可读性的逗号(每隔三位),我们可以这样表示:
^[0-9]{1,3}(,[0-9]{3})*(\.[0-9]{1,2})?$ 不要忘记’+’可以被’*’替代如果你想允许空白字符串被输入话,也不要忘记反斜杆’\’在php字符串中可能会出现错误 (很普遍的错误):现在,我们已经可以确认字符串了,我们现在把所有逗号都去掉str_replace(”,”, “”, $money)然后在把类型看成double然后我们就可以通过他做数学计算了。

  再来构建一个完整的email,在一个完整的email地址中有三个部分:

  1. 用户名 (在 ‘@’ 左边的一切)
2.’@’
3. 服务器名(就是剩下那部分)

用户名可以含有大小写字母阿拉伯数字,句号(’.’)减号(’-’)and下划线’_’)。服务器名字也是符合这个规则,当然下划线除外。现在,用户名的开始和结束都不能是句点,服务器也是这样。还有你不能有两个连续的句点他们之间至少存在一个字符,好现在我们来看一下怎么为用户名写一个匹配模式:

^[_a-zA-Z0-9-]+$
现在还不能允许句号的存在。我们把它加上:

^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*$
上面的意思就是说:以至少一个规范字符(除了.)开头,后面跟着0个或者多个以点开始的字符串。

简单化一点, 我们可以用eregi()取代ereg()、eregi()对大小写不敏感, 我们就不需要指定两个范围 “a-z” 和 “A-Z”只需要指定一个就可以了:
^[_a-z0-9-]+(\.[_a-z0-9-]+)*$

后面的服务器名字也是一样,但要去掉下划线:
^[a-z0-9-]+(\.[a-z0-9-]+)*$

现在只需要用”@”把两部分连接:
^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*$

这就是完整的email认证匹配模式了,只需要调用:
eregi(”^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*$”,$eamil)

就可以得到是否为email了 

电话号码正则表达式(支持手机号码,3-4位区号,7-8位直播号码,1-4位分机号) ((\d{11})|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3})-(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1})|(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1}))$)
匹配格式:
11位手机号码
3-4位区号,7-8位直播号码,1-4位分机号
如:12345678901、1234-12345678-1234

"^\d+$"  //非负整数(正整数 + 0) 
"^[0-9]*[1-9][0-9]*$"  //正整数
"^((-\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 
/^13\d{9}$/gi手机号正则表达式


public static bool IsValidMobileNo(string MobileNo)
{
const string regPattern = @"^(130|131|132|133|134|135|136|137|138|139)\d{8}$";
return Regex.IsMatch(MobileNo, regPattern);
}

正则表达式--验证手机号码:13[0-9]{9}
实现手机号前带86或是+86的情况:^((\+86)|(86))?(13)\d{9}$
电话号码与手机号码同时验证:(^(\d{3,4}-)?\d{7,8})$|(13[0-9]{9}) 
提取信息中的网络链接:(h|H)(r|R)(e|E)(f|F)  *=  *('|")?(\w|\\|\/|\.)+('|"|  *|>)?  
提取信息中的邮件地址:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*  
提取信息中的图片链接:(s|S)(r|R)(c|C)  *=  *('|")?(\w|\\|\/|\.)+('|"|  *|>)?
提取信息中的IP地址:(\d+)\.(\d+)\.(\d+)\.(\d+)    
提取信息中的中国手机号码:(86)*0*13\d{9}    
提取信息中的中国固定电话号码:(\(\d{3,4}\)|\d{3,4}-|\s)?\d{8}    
提取信息中的中国电话号码(包括移动和固定电话):(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}    
提取信息中的中国邮政编码:[1-9]{1}(\d+){5}    
提取信息中的中国身份证号码:\d{18}|\d{15}    
提取信息中的整数:\d+    
提取信息中的浮点数(即小数):(-?\d*)\.?\d+    
提取信息中的任何数字  :(-?\d*)(\.\d+)?  
提取信息中的中文字符串:[\u4e00-\u9fa5]* 或者  /^[\u4E00-\u9FA5]+$/
提取信息中的双字节字符串  (汉字):[^\x00-\xff]*

 

3.举例说明

今天遇到一个问题,这个分页做的很简单,就两个按钮, 一个“上一页”,一个“下一页”,前面一个label显示“第2页 共5页”,现在想在显示“第1页 共5页”的时候点击“上一页”提示“已经第一页了啊”,当显示“第1页 共5页”,点击下一页的时候提示“已经最后一页了啊”,如何把字符串"第2页 共5页"中的数字2和5提取出来,先看代码,

复制代码

    $("#ctl00_MainContent_butPre,#ctl00_MainContent_butNex").on("click", function () {var pageString = $("#ctl00_MainContent_labCurPag").html(),id = $(this).attr("id"),reg = /([1-9][0-9]*)/g,pageNumbers = pageString.match(reg),tips = "";if (/Pre/.test(id) && "1" == pageNumbers[0]) {tips = "已经第一页了啊";}else if (/Nex/.test(id) && pageNumbers[0] == pageNumbers[1]) {tips = "已经最后一页了啊";}if (tips) {var d = dialog({title: '提示',content: tips,});d.show();return false;}});

复制代码

从w3c上看到exec是正则表达式的方法,它以字符串为参数,如下所示:返回结果是

var reg = new RegExp("abc") ;
var str = "3abc4,5abc6";
reg.exec(str );

看到这个例子的时候我觉得有戏,照葫芦画瓢这样写

var reg = new RegExp("[1-9][0-9]*", "g") ;
var str = "第2页 共5页";
var result = reg.exec(str );
console.log(result);

返回结果如下:

很明显不是我想要的答案,除了当前页我还想知道总共多少页,就是那个5。

 

match是字符串执行匹配正则表达式规则的方法,它的参数是正则表达

var reg = new RegExp("abc") ;
var str = "3abc4,5abc6";
str.match(reg);

3、exec和match返回的都是数组;
如果exec执行的正则表达式没有子表达式(小括号内的内容,如/abc(\s*)/中的(\s*) ),如果有匹配,就返回第一个匹配的字符串内容,此时的数组仅有一个元素,如果没有匹配返回null;
var reg = new RegExp("abc") ;
var str = "3abc4,5abc6";
alert(reg.exec(str));
alert(str.match(reg));
执行如上代码,你会发现两者内容均为一样:abc,
4、如果定义正则表达对象为全局匹配如:
var reg = new RegExp("abc","g") ;
var str = "3abc4,5abc6";
alert(reg.exec(str));
alert(str.match(reg));
则 为abc和abc,abc;因为match执行了全局匹配查询;而exec如果没有子表达式只会找到一个匹配的即返回。
5、当表示中含有子表达式的情况:
var reg = new RegExp("a(bc)") ;
var str = "3abc4,5abc6";
alert(reg.exec(str));
alert(str.match(reg));
你会发现两者执行的结果都是:abc,bc;
6、当如果正则表达式对象定义为为全局匹配
var reg = new RegExp("a(bc)","g") ;
var str = "3abc4,5abc6";
alert(reg.exec(str));
alert(str.match(reg));
则两者返回的结果是abc,bc和abc,abc,
总结为:
1、当正则表达式无子表达式,并且定义为非全局匹配时,exec和match执行的结果是一样,均返回第一个匹配的字符串内容;
2、当正则表达式无子表达式,并且定义为全局匹配时,exec和match执行,做存在多处匹配内容,则match返回的是多个元素数组;
3、当正则表达式有子表示时,并且定义为非全局匹配,exec和match执行的结果是一样如上边的第5种情况;
4、当正则表达式有子表示时,并且定义为全局匹配,exec和match执行的结果不一样,此时match将忽略子表达式,只查找全匹配正则表达式并返回所有内容,如上第6种情况;
也就说,exec与全局是否定义无关系,而match则于全局相关联,当定义为非全局,两者执行结果相同。

好细微的差别啊,w3c上是不会有这么细致的介绍的,于是有了正确答案,如下:

var reg = new RegExp("[1-9][0-9]*","g") ;
var str = "第2页 共5页";
var result = str.match(reg);
console.log(result);

 

现在已经没有研究正则表达式原理,现在只想在网上找过来看看了,下面的都是来自别人的博客。

1.正则表达式 整数
^[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)

2.另外一个版本
"^(([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 
/^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$/ // 年-月-日 
/^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$/ // 月/日/年 
"^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$" //Emil 
"(d+-)?(d{4}-?d{7}|d{3}-?d{8}|^d{7,8})(-d+)?" //电话号码 
"^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$" //IP地址 

YYYY-MM-DD基本上把闰年和2月等的情况都考虑进去了 
^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$

C#正则表达式 
图片 src[^>]*[^/].(?:jpg|bmp|gif)(?:\"|\') 
中文 ^([\u4e00-\u9fa5]+|[a-zA-Z0-9]+)$ 
网址 "\<a.+?href=['""](?!http\:\/\/)(?!mailto\:)(?>foundAnchor>[^'"">]+?)[^>]*?\>" 

匹配中文字符的正则表达式: [\u4e00-\u9fa5] 

匹配双字节字符(包括汉字在内):[^\x00-\xff] 

匹配空行的正则表达式:\n[\s| ]*\r 

匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*) \/>/ 

匹配首尾空格的正则表达式:(^\s*)|(\s*$)(像vbscript那样的trim函数) 

匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 

匹配网址URL的正则表达式:http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)? 
--------------------------------------------------------------------------- 
以下是例子: 

利用正则表达式限制网页表单里的文本框输入内容: 

用正则表达式限制只能输入中文:οnkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))" 

1.用正则表达式限制只能输入全角字符: οnkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))" 

2.用正则表达式限制只能输入数字:οnkeyup="value=value.replace(/[^\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))" 

3.用正则表达式限制只能输入数字和英文:οnkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))" 

4.计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) 

String.prototype.len=function(){return this.replace([^\x00-\xff]/g,"aa").length;} 

5.javascript中没有像vbscript那样的trim函数,我们就可以利用这个表达式来实现,如下: 

String.prototype.trim = function() 

return this.replace(/(^\s*)|(\s*$)/g, ""); 


利用正则表达式分解和转换IP地址: 

6.下面是利用正则表达式匹配IP地址,并将IP地址转换成对应数值的Javascript程序: 

function IP2V(ip) 

re=/(\d+)\.(\d+)\.(\d+)\.(\d+)/g //匹配IP地址的正则表达式 
if(re.test(ip)) 

return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1 

else 

throw new Error("不是一个正确的IP地址!") 



不过上面的程序如果不用正则表达式,而直接用split函数来分解可能更简单,程序如下: 

var ip="10.100.20.168" 
ip=ip.split(".") 
alert("IP值是:"+(ip[0]*255*255*255+ip[1]*255*255+ip[2]*255+ip[3]*1))

3.这位博友很细心把html代码也贴出来了

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">   
<html xmlns="http://www.w3.org/1999/xhtml">   
<head>   
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />   
<title>Test</title>   
<script type="text/javascript" language="javascript" src="jquery.js"></script>   
<script type="text/javascript" language="javascript" >   
function validata(){   
if($("#username").val()==""){   
document.write("请输入名字");               
return false;   
}   
if($("#password").val()==""){   
document.write("请输入密码");   
return false;   
}          
if($("#telephone").val()==""){   
document.write("请输入电话号码");   
}   
if($("#email").val()==""){   
$("#email").val("shuangping@163.com");   
}   
}      

function isInteger(obj){   

reg=/^[-+]?\d+$/;    
if(!reg.test(obj)){   
$("#test").html("<b>Please input correct figures</b>");   
}else{   
$("#test").html("");   
}   
}   
function isEmail(obj){   
reg=/^\w{3,}@\w+(\.\w+)+$/;   
if(!reg.test(obj)){        
$("#test").html("<b>请输入正确的邮箱地址</b>");   
}else{   
$("#test").html("");   
}   
}   
function isString(obj){   
reg=/^[a-z,A-Z]+$/;   
if(!reg.test(obj)){   
$("#test").html("<b>只能输入字符</b>");   
}else{   
$("#test").html("");   
}   
}   
function isTelephone(obj){   
reg=/^(\d{3,4}\-)?[1-9]\d{6,7}$/;   
if(!reg.test(obj)){   
$("#test").html("<b>请输入正确的电话号码!</b>");   
}else{   
$("#test").html("");   
}   
}   
function isMobile(obj){   
reg=/^(\+\d{2,3}\-)?\d{11}$/;   
if(!reg.test(obj)){   
$("#test").html("请输入正确移动电话");   
}else{   
$("#test").html("");   
}   
}   
function isUri(obj){   
reg=/^http:\/\/[a-zA-Z0-9]+\.[a-zA-Z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/;   
if(!reg.test(obj)){   
$("#test").html($("#uri").val()+"请输入正确的inernet地址");   
}else{   
$("#test").html("");   
}   
}   

//document加载完毕执行   
$(document).ready(function() {   
// do something here   

//隔行换色功能   
$("p").each(function(i){   
this.style.color=['red','green','blue','black'][i%2]   
});   

//eq(2)获取$("p")集合的第3个元素    
$("p").eq(2).click(function(){$("#display").css("color","blue")});   

//所有test中的p都附加了样式"over"。   
$("#test>p").addClass("over");   

//test中的最后一个p附加了样式"out"。   
$("#test p:last").addClass("out");   

//选择同级元素还没看懂   
//$('#faq').find('dd').hide().end().find('dt').click(function()    

//选择父级元素   
$("a").hover(   
function(){$(this).parents("p").addClass("out")},   
function(){$(this).parents("p").removeClass("out")})   


//hover鼠标悬停效果,toggle每次点击时切换要调用的函数  ,   
//trigger(eventtype): 在每一个匹配的元素上触发某类事件,   
//bind(eventtype,fn),unbind(eventtype): 事件的绑定与反绑定从每一个匹配的元素中(添加)删除绑定的事件。   

//方法的连写   
$("#display").hover(function(){   
$(this).addClass("over");   
},function(){   
$(this).removeClass("over");    
})   
.click(function(){alert($("#display").text())});   

if($.browser.msie){//判断浏览器,若是ie则执行下面的功能   

//聚焦   
$("input[@type=text],textarea,input[@type=password]")   
.focus(function(){$(this).css({background:"white",border:"1px solid blue"})})   
//也可以这样连着写,   
//.blur(function(){$(this).css({background:"white",border:"1px solid black"})})   

//失去焦点   
//css样式可以通过addClass()来添加   
$("input[@type=text],textarea,input[@type=password]")   
.blur(function(){$(this).css({background:"white",border:"1px solid black"});});   
}   
});    
</script>   
<style type="text/css">   
.over{   
font-size:large;   
font-style:italic;   
}   
.out{   
font-size:small;   
}          
</style>   
</head>   

<body >   
<div id="display">demo</div>   
<div id="test">   
<p>adfa<a>dfasfa</a>sdfasdf</p>   
<p>adfadfasfasdfasdf</p>   
<p>adfadfasfasdfasdf</p>       
<p>adfadfasfasdfasdf</p>   
</div>   
<form id="theForm">   
isString<div><input type="text" id="username" οnblur="isString(this.value)"/></div>   
isInteger<div><input type="text" id="password" οnblur="isInteger(this.value)"/></div>   
isTelephone<div><input type="text" id="telephone" οnblur="isTelephone(this.value)"/></div>   
isMobile<div><input type="text" id="mobile" οnblur="isMobile(this.value)"/></div>   
isEmail<div><input type="text" id="email" οnblur="isEmail(this.value)"/></div>   
isUri<div><input type="text" id="uri" οnblur="isUri(this.value)"/></div>   
<div><input type="button" value="Validata" οnclick="return validata();"  /></div>   
</form>   
</body>   
</html>

 

 4. 用JS jquery取float型小数点后两位
1. 最笨的办法
function get()
{
var s = 22.127456 + “”;
var str = s.substring(0,s.indexOf(“.”) + 3);
alert(str);
}


2. 正则表达式效果不错
<scrīpt type=”text/javascrīpt”> 
onload = function(){     
var a = “23.456322″;
var aNew;
var re = /([0-9]+\.[0-9]{2})[0-9]*/;
aNew = a.replace(re,”$1″);
alert(aNew);

</scrīpt>

3. 他就比较聪明了…..
<scrīpt> 
var num=22.127456; alert( Math.round(num*100)/100); 
</scrīpt>

4.会用新鲜东西的朋友……. 但是需要 IE5.5+才支持。 
<scrīpt> 
var num=22.127456; alert( num.toFixed(2)); 
</scrīpt>

参考链接:

http://www.cnblogs.com/freexiaoyu/archive/2008/12/17/1356690.html

http://www.cnblogs.com/qyz123/archive/2007/05/12/743537.html

http://www.cnblogs.com/luluping/archive/2008/05/04/1181434.html

 

关键字:js验证表单大全,用JS控制表单提交 ,javascript提交表单:
目录:
1:js 字符串长度限制、判断字符长度 、js限制输入、限制不能输入、textarea 长度限制
2.:js判断汉字、判断是否汉字 、只能输入汉字
3:js判断是否输入英文、只能输入英文
4:js只能输入数字,判断数字、验证数字、检测数字、判断是否为数字、只能输入数字
5:只能输入英文字符和数字
6: js email验证 、js 判断email 、信箱/邮箱格式验证
7:js字符过滤,屏蔽关键字
8:js密码验证、判断密码
2.1: js 不为空、为空或不是对象 、判断为空 、判断不为空
2.2:比较两个表单项的值是否相同
2.3:表单只能为数字和"_",
2.4:表单项输入数值/长度限定
2.5:中文/英文/数字/邮件地址合法性判断
2.6:限定表单项不能输入的字符
2.7表单的自符控制
2.8:form文本域的通用校验函数

1. 长度限制
<script>
function test()
{
if(document.a.b.value.length>50)
{
alert("不能超过50个字符!");
document.a.b.focus();
return false;
}
}
</script>
<form name=a οnsubmit="return test()">
<textarea name="b" cols="40" wrap="VIRTUAL" rows="6"></textarea>
<input type="submit" name="Submit" value="check">
</form>

2. 只能是汉字
<input οnkeyup="value="/oblog/value.replace(/[^\u4E00-\u9FA5]/g,'')">

3." 只能是英文
<script language=javascript>
function onlyEng()
{
if(!(event.keyCode>=65&&event.keyCode<=90))
event.returnvalue=false;
}
</script>

<input οnkeydοwn="onlyEng();">

4. 只能是数字
<script language=javascript>
function onlyNum()
{
if(!((event.keyCode>=48&&event.keyCode<=57)||(event.keyCode>=96&&event.keyCode<=105)))
//考虑小键盘上的数字键
event.returnvalue=false;
}
</script>

<input οnkeydοwn="onlyNum();">

5. 只能是英文字符和数字
<input οnkeyup="value="/oblog/value.replace(/[\W]/g,"'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))">

6. 验证油箱格式
<SCRIPT LANGUAGE=javascript RUNAT=Server>
function isEmail(strEmail) {
if (strEmail.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)
return true;
else

alert("oh");
}
</SCRIPT>
<input type=text οnblur=isEmail(this.value)>

7. 屏蔽关键字(这里屏蔽***和****)
<script language="javascript1.2">
function test() {
if((a.b.value.indexOf ("***") == 0)||(a.b.value.indexOf ("****") == 0)){
alert(":)");
a.b.focus();
return false;}
}
</script>
<form name=a οnsubmit="return test()">
<input type=text name=b>
<input type="submit" name="Submit" value="check">
</form>

8. 两次输入密码是否相同
<FORM METHOD=POST ACTION="">
<input type="password" id="input1">
<input type="password" id="input2">
<input type="button" value="test" οnclick="check()">
</FORM>
<script>
function check()
{
with(document.all){
if(input1.value!=input2.value)
{
alert("false")
input1.value = "";
input2.value = "";
}
else document.forms[0].submit();

}
}
</script>
够了吧 :)
屏蔽右键 很酷
οncοntextmenu="return false" οndragstart="return false" onselectstart="return false"
加在body中


2.1   表单项不能为空

<script   language="javascript">
<!--
function   CheckForm()
{  
if   (document.form.name.value.length   ==   0)   {  
alert("请输入您姓名!");
document.form.name.focus();
return   false;
}
return   true;
}
-->
</script>

2.2   比较两个表单项的值是否相同

<script   language="javascript">
<!--
function   CheckForm()
if   (document.form.PWD.value   !=   document.form.PWD_Again.value)   {  
alert("您两次输入的密码不一样!请重新输入.");
document.ADDUser.PWD.focus();
return   false;
}

return   true;
}
-->
</script>

2.3   表单项只能为数字和"_",用于电话/银行帐号验证上,可扩展到域名注册等

<script   language="javascript">
<!--
function   isNumber(String)
{  
var   Letters   =   "1234567890-";   //可以自己增加可输入值
var   i;
var   c;
if(String.charAt(   0   )=='-')
return   false;
if(   String.charAt(   String.length   -   1   )   ==   '-'   )
return   false;
for(   i   =   0;   i   <   String.length;   i   ++   )
{  
c   =   String.charAt(   i   );
if   (Letters.indexOf(   c   )   <   0)
return   false;
}
return   true;
}
function   CheckForm()
{  
if(!   isNumber(document.form.TEL.value))   {  
alert("您的电话号码不合法!");
document.form.TEL.focus();
return   false;
}
return   true;
}
-->

</script>


2.4   表单项输入数值/长度限定

<script   language="javascript">
<!--
function   CheckForm()  
{  
if   (document.form.count.value   >   100   ||   document.form.count.value   <   1)
{  
alert("输入数值不能小于零大于100!");
document.form.count.focus();
return   false;
}
if   (document.form.MESSAGE.value.length<10)
{  
alert("输入文字小于10!");
document.form.MESSAGE.focus();
return   false;
}
return   true;
}
//-->
</script>

2.5   中文/英文/数字/邮件地址合法性判断

<SCRIPT   LANGUAGE="javascript">
<!--

function   isEnglish(name)   //英文值检测
{  
if(name.length   ==   0)
return   false;
for(i   =   0;   i   <   name.length;   i++)   {  
if(name.charCodeAt(i)   >   128)

return   false;
}
return   true;
}

function   isChinese(name)   //中文值检测
{  
if(name.length   ==   0)
return   false;
for(i   =   0;   i   <   name.length;   i++)   {  
if(name.charCodeAt(i)   >   128)
return   true;
}
return   false;
}

function   isMail(name)   //   E-mail值检测
{  
if(!   isEnglish(name))
return   false;
i   =   name.indexOf("   at   ");
j   =   name   dot   lastIndexOf("   at   ");
if(i   ==   -1)
return   false;
if(i   !=   j)
return   false;
if(i   ==   name   dot   length)
return   false;
return   true;
}

function   isNumber(name)   //数值检测
{  
if(name.length   ==   0)
return   false;
for(i   =   0;   i   <   name.length;   i++)   {

if(name.charAt(i)   <   "0"   ||   name.charAt(i)   >   "9")
return   false;
}
return   true;
}

function   CheckForm()
{  
if(!   isMail(form.Email.value))   {  
alert("您的电子邮件不合法!");
form.Email.focus();
return   false;
}
if(!   isEnglish(form.name.value))   {  
alert("英文名不合法!");
form.name.focus();
return   false;
}
if(!   isChinese(form.cnname.value))   {  
alert("中文名不合法!");
form.cnname.focus();
return   false;
}
if(!   isNumber(form.PublicZipCode.value))   {  
alert("邮政编码不合法!");
form.PublicZipCode.focus();
return   false;
}
return   true;
}
//-->
</SCRIPT>

2.6   限定表单项不能输入的字符

<script   language="javascript">

<!--

function   contain(str,charset)//   字符串包含测试函数
{  
var   i;
for(i=0;i<charset.length;i++)
if(str.indexOf(charset.charAt(i))>=0)
return   true;
return   false;
}

function   CheckForm()
{  
if   ((contain(document.form.NAME.value,   "%\(\)><"))   ||   (contain(document.form.MESSAGE.value,   "%\(\)><")))
{  
alert("输入了非法字符");
document.form.NAME.focus();
return   false;
}
return   true;
}
//-->
</script> 

1. 检查一段字符串是否全由数字组成       
---------------------------------------       
<script language="Javascript"><!--           
function checkNum(str){return str.match(/\D/)==null}           
alert(checkNum("1232142141"))           
alert(checkNum("123214214a1"))           
// --></script>         

2. 怎么判断是否是字符         
---------------------------------------       
if (/[^\x00-\xff]/g.test(s)) alert("含有汉字");          
else alert("全是字符");

4. 邮箱格式验证    
---------------------------------------      
//函数名:chkemail     
//功能介绍:检查是否为Email Address     
//参数说明:要检查的字符串     
//返回值:0:不是 1:是     
function chkemail(a)     
{ var i=a.length;     
var temp = a.indexOf('@');     
var tempd = a.indexOf('.');     
if (temp > 1) {     
if ((i-temp) > 3){     
if ((i-tempd)>0){     
return 1;     
}     

}     
}     
return 0;     
}     

5. 数字格式验证    
---------------------------------------      
//函数名:fucCheckNUM     
//功能介绍:检查是否为数字     
//参数说明:要检查的数字     
//返回值:1为是数字,0为不是数字     
function fucCheckNUM(NUM)     
{     
var i,j,strTemp;     
strTemp="0123456789";     
if ( NUM.length== 0)     
return 0     
for (i=0;i<NUM.length;i++)     
{     
j=strTemp.indexOf(NUM.charAt(i));

if (j==-1)     
{     
//说明有字符不是数字     
return 0;     
}     
}     
//说明是数字     
return 1;     
}     

6. 电话号码格式验证    
---------------------------------------      
//函数名:fucCheckTEL     
//功能介绍:检查是否为电话号码     
//参数说明:要检查的字符串     
//返回值:1为是合法,0为不合法     
function fucCheckTEL(TEL)     
{     
var i,j,strTemp;     
strTemp="0123456789-()# ";     
for (i=0;i<TEL.length;i++)     
{     
j=strTemp.indexOf(TEL.charAt(i));     
if (j==-1)     
{     
//说明有字符不合法     
return 0;     
}     
}     
//说明合法     
return 1;     
}    

7. 判断输入是否为中文的函数   
---------------------------------------      
function ischinese(s){

var ret=true;   
for(var i=0;i<s.length;i++)   
ret=ret && (s.charCodeAt(i)>=10000);   
return ret;   
}    

8. 综合的判断用户输入的合法性的函数  
---------------------------------------      
<script language="javascript">  
//限制输入字符的位数开始  
//m是用户输入,n是要限制的位数  
function issmall(m,n)  
{  
if ((m<n) && (m>0))  
{  
return(false);  
}  
else  
{return(true);}  
}  

9. 判断密码是否输入一致  
---------------------------------------      
function issame(str1,str2)  
{  
if (str1==str2)  
{return(true);}  
else  
{return(false);}  
}  

10. 判断用户名是否为数字字母下滑线
---------------------------------------      
function notchinese(str){
var reg=/[^A-Za-z0-9_]/g
if (reg.test(str)){

return (false);
}else{
return(true);     }
}

 

11.验证手机号

    function validatemobile(mobile)
{
if(mobile.length==0)
{
alert('请输入手机号码!');
document.form1.mobile.focus();
return false;
}    
if(mobile.length!=11)
{
alert('请输入有效的手机号码!');
document.form1.mobile.focus();
return false;
}

var myreg = /^(((13[0-9]{1})|159|153)+\d{8})$/;
if(!myreg.test(mobile))
{
alert('请输入有效的手机号码!');
document.form1.mobile.focus();
return false;
}
}

或者

if(!/^(13[0-9]|14[0-9]|15[0-9]|18[0-9])\d{8}$/i.test(mobile))

或者

代码如下:
function Checkreg()
{
//验证电话号码手机号码,包含153,159号段
if (document.form.phone.value=="" && document.form.UserMobile.value==""){
alert("电话号码和手机号码至少选填一个阿!");
document.form.phone.focus();
return false;
}
if (document.form.phone.value != ""){
var phone=document.form.phone.value;
var p1 = /^(([0\+]\d{2,3}-)?(0\d{2,3})-)?(\d{7,8})(-(\d{3,}))?$/;
var me = false;
if (p1.test(phone))me=true;
if (!me){
document.form.phone.value='';
alert('对不起,您输入的电话号码有错误。区号和电话号码之间请用-分割');
document.form.phone.focus();
return false;
}
}
if (document.form.UserMobile.value != ""){
var mobile=document.form.UserMobile.value;
var reg0 = /^13\d{5,9}$/;
var reg1 = /^153\d{4,8}$/;
var reg2 = /^159\d{4,8}$/;
var reg3 = /^0\d{10,11}$/;
var my = false;
if (reg0.test(mobile))my=true;
if (reg1.test(mobile))my=true;
if (reg2.test(mobile))my=true;
if (reg3.test(mobile))my=true;
if (!my){
document.form.UserMobile.value='';
alert('对不起,您输入的手机或小灵通号码有错误。');
document.form.UserMobile.focus();
return false;
}
return true;
}
}

说明
test方法检查在字符串中是否存在一个模式,如果存在则返回 true,否则就返回 false。

正则表达式部分:
\d 代表一个数字
{7,8} 代表7-8位数字(表示电话号码)
{3,} 代表分机号码
d{2,3} 代表区号
\+]\d{2,3} 代表国际区号
^13\d{5,9}$/ //130?139。至少5位,最多9位
/^153\d{4,8}$/ //联通153。至少4位,最多8位
/^159\d{4,8}$/ //移动159。至少4位,最多8位

第二个:
复制代码 代码如下:

var Mobile = $("#varMobilePhone").val();
var Phone = $("#varPhoneNo").val();
if (Mobile == ""&&Phone == "")
{
alert("手机和固话,请至少填写一项联系方式!");
$("#varMobilePhone").focus();
return;
}
if(Mobile!="")
{
if(!isMobil(Mobile))
{
alert("请输入正确的手机号码!");
$("#varMobilePhone").focus();
return; }
}
//手机号码验证信息
function isMobil(s)
{
var patrn = /(^0{0,1}1[3|4|5|6|7|8|9][0-9]{9}$)/;
if (!patrn.exec(s))
{
return false;
} return true; }
后台验证如下:
if (model.Zip != null)
{
if (!Common.PageValidate.IsValidate(model.Zip,"^\\d{6}$"))
{ Common.WebMessage.showMsg(HttpContext.Current, "请输入正确邮编");
return;
}
}
if (model.PhoneNo != null)
{
if (!Common.PageValidate.IsValidate(model.PhoneNo, "\\d{3}-\\d{8}|\\d{4}-\\d{7}"))
{
Common.WebMessage.showMsg(HttpContext.Current, "请输入正确的电话号码!");
return;
}
}
if (model.MobilePhone != null)
{
if (!Common.PageValidate.IsValidate(model.MobilePhone, "^0{0,1}(13[0-9]|15[3-9]|15[0-2]|18[0-9])[0-9]{8}$"))
{
Common.WebMessage.showMsg(HttpContext.Current, "请输入正确11位有效的手机号码!");
return;
}
}

 

match 方法 
使用正则表达式模式对字符串执行查找,并将包含查找的结果作为数组返回。 
stringObj.match(rgExp) 
参数 
stringObj 
必选项。对其进行查找的 String 对象或字符串文字。 
rgExp 
必选项。为包含正则表达式模式和可用标志的正则表达式对象。也可以是包含正则表达式模式和可用标志的变量名或字符串文字。 
其余说明与exec一样,不同的是如果match的表达式匹配了全局标记g将出现所有匹配项,而不用循环,但所有匹配中不会包含子匹配项。 
例子1: 
function MatchDemo(){ var r, re; // 声明变量。 var s = "The rain in Spain falls mainly in the plain"; re = /(a)in/ig; // 创建正则表达式模式。 r = s.match(re); // 尝试去匹配搜索字符串。 document.write(r); // 返回的数组包含了所有 "ain" 出现的四个匹配,r[0]、r[1]、r[2]、r[3]。 // 但没有子匹配项a。}输出结果:ain,ain,ain,ain 
exec 方法 
用正则表达式模式在字符串中查找,并返回该查找结果的第一个值(数组),如果匹配失败,返回null。 
rgExp.exec(str) 
参数 
rgExp 
必选项。包含正则表达式模式和可用标志的正则表达式对象。 
str 
必选项。要在其中执行查找的 String 对象或字符串文字。 
返回数组包含: 
input:整个被查找的字符串的值; 
index:匹配结果所在的位置(位); 
lastInput:下一次匹配结果的位置; 
arr:结果值,arr[0]全匹配结果,arr[1,2...]为表达式内()的子匹配,由左至右为1,2...。 
例子2:

代码如下:

function RegExpTest(){

var src="http://sumsung753.blog.163.com/blog/I love you!"; 
var re = /\w+/g; // 注意g将全文匹配,不加将永远只返回第一个匹配。 
var arr; 
while((arr = re.exec(src)) !=null){ //exec使arr返回匹配的第一个,while循环一次将使re在g作用寻找下一个匹配。 
document.write(arr.index + "-" + arr.lastIndex + ":" + arr + "<br/>"); 
for(key in arr){ 
document.write(key + "=>" + arr[key] + "<br/>"); 

document.write("<br/>"); 


window.onload = RegExpTest();


输出结果: 
0-1:I //0为index,i所在位置,1为下一个匹配所在位置 
input=>I love you! 
index=>0 
lastIndex=>1 
0=>I 
2-6:love 
input=>I love you! 
index=>2 
lastIndex=>6 
0=>love 
7-10:you 
input=>I love you! 
index=>7 
lastIndex=>10 
0=>you 
说 明:根据手册,exec只返回匹配结果的第一个值,比如上例如果不用while循环,将只返回'I'(尽管i空格后的love和you都符合表达式),无 论re表达式用不用全局标记g。但是如果为正则表达式设置了全局标记g,exec 从以 lastIndex 的值指示的位置开始查找。如果没有设置全局标志,exec 忽略 lastIndex 的值,从字符串的起始位置开始搜索。利用这个特点可以反复调用exec遍历所有匹配,等价于match具有g标志。 
当然,如果正则表达式忘记用g,而又用循环(比如:while、for等),exec将每次都循环第一个,造成死循环。 
exec的输出将包含子匹配项。 
例子3:

 代码如下:


function execDemo(){ 
var r, re; // 声明变量。 
var s = "The rain in Spain falls mainly in the plain"; 
re = /[\w]*(ai)n/ig; 
r = re.exec(s); 
document.write(r + "<br/>"); 
for(key in r){ 
document.write(key + "-" + r[key] + "<br/>"); 


window.onload = execDemo();


输出: 
rain,ai 
input-The rain in Spain falls mainly in the plain 
index-4 
lastIndex-8 
0-rain 
1-ai 
test 方法 
返回一个 Boolean 值,它指出在被查找的字符串中是否匹配给出的正则表达式。 
rgexp.test(str) 
参数 
rgexp 
必选项。包含正则表达式模式或可用标志的正则表达式对象。 
str 
必选项。要在其上测试查找的字符串。 
说明 
test 方法检查字符串是否与给出的正则表达式模式相匹配,如果是则返回 true,否则就返回 false。 
例子4:

代码如下:


function TestDemo(re, s){ 
var s1; 
if (re.test(s)) 
s1 = " 匹配正则式 "; 
else 
s1 = " 不匹配正则式 "; 
return("'" + s + "'" + s1 + "'"+ re.source + "'"); 

window.onload = document.write(TestDemo(/ab/,'cdef'));


输出结果:'cdef' 不匹配正则式 'ab' 
注意:test()继承正则表达式的lastIndex属性,表达式在匹配全局标志g的时候须注意。 
例子5:

代码如下:


function testDemo(){ 
var r, re; // 声明变量。 
var s = "I"; 
re = /I/ig; // 创建正则表达式模式。 
document.write(re.test(s) + "<br/>"); // 返回 Boolean 结果。 
document.write(re.test(s) + "<br/>"); 
document.write(re.test(s)); 

testDemo();


输出结果: 
true 
false 
true 
当第二次调用test()的时候,lastIndex指向下一次匹配所在位置1,所以第二次匹配不成功,lastIndex重新指向0,等于第三次又重新匹配。下例显示test的lastIndex属性: 
例子6:

代码如下:


function testDemo(){ 
var r, re; // 声明变量。 
var s = "I"; 
re = /I/ig; // 创建正则表达式模式。 
document.write(re.test(s) + "<br/>"); // 返回 Boolean 结果。 
document.write(re.lastIndex); // 返回 Boolean 结果。 

testDemo();


输出: 
true 

解决方法:将test()的lastIndex属性每次重新指向0,re.lastIndex = 0; 

search 方法 
返回与正则表达式查找内容匹配的第一个子字符串的位置(偏移位)。 
stringObj.search(rgExp) 
参数 
stringObj 
必选项。要在其上进行查找的 String 对象或字符串文字。 
rgExp 
必选项。包含正则表达式模式和可用标志的正则表达式对象。 
说明:如果找到则返回子字符至开始处的偏移位,否则返回-1。 
例子6:

代码如下:


function SearchDemo(){ 
var r, re; // 声明变量。 
var s = "The rain in Spain falls mainly in the plain."; 
re = /falls/i; // 创建正则表达式模式。 
re2 = /tom/i; 
r = s.search(re); // 查找字符串。 
r2 = s.search(re2); 
return("r:" + r + ";r2:" + r2); // 返回 Boolean 结果。 

document.write(SearchDemo());


输出:r:18;r2:-1 
replace 方法 
返回根据正则表达式进行文字替换后的字符串的复制。 
stringObj.replace(rgExp, replaceText) 
参数 
stringObj 
必选项。要执行该替换的 String 对象或字符串文字。该字符串不会被 replace 方法修改。 
rgExp 
必选项。为包含正则表达式模式或可用标志的正则表达式对象。也可以是 String 对象或文字。如果 rgExp 不是正则表达式对象,它将被转换为字符串,并进行精确的查找;不要尝试将字符串转化为正则表达式。 
replaceText 
必选项。是一个String 对象或字符串文字,对于stringObj 中每个匹配 rgExp 中的位置都用该对象所包含的文字加以替换。在 Jscript 5.5 或更新版本中,replaceText 参数也可以是返回替换文本的函数。 
说明 
replace 方法的结果是一个完成了指定替换的 stringObj 对象的复制。意思为匹配的项进行指定替换,其它不变作为StringObj的原样返回。 
ECMAScript v3 规定,replace() 方法的参数 replacement 可以是函数而不是字符串。在这种情况下,每个匹配都调用该函数,它返回的字符串将作为替换文本使用。该函数的第一个参数是匹配模式的字符串。接下来的参数 是与模式中的子表达式匹配的字符串,可以有 0 个或多个这样的参数。接下来的参数是一个整数,声明了匹配在 stringObject 中出现的位置。最后一个参数是 stringObject 本身。结果为将每一匹配的子字符串替换为函数调用的相应返回值的字符串值。函数作参可以进行更为复杂的操作。 
例子7:

代码如下:


function f2c(s) { 
var test = /(\d+(\.\d*)?)F\b/g; // 说明华氏温度可能模式有:123F或123.4F。注意,这里用了g模式 
return(s.replace 
(test, 
function(Regstr,$1,$2,$3,newstrObj) { 
return(("<br/>" + Regstr +"<br/>" + ($1-32) * 1/2) + "C" +"<br/>" + //以下两行进行替换 
$2 +"<br/>" + $3 +"<br/>" + newstrObj +"<br/>" ); 


); 

document.write(f2c("Water: 32.2F and Oil: 20.30F."));


输出结果: 
Water: //不与正则匹配的字符,按原字符输出 
32.2F //与正则相匹配的第一个字符串的原字符串 Regstr 
0.10000000000000142C //与正则相匹配的第一个字符串的第一个子模式匹配的替换结果 $1 
.2 //与正则相匹配的第一个字符串的第二个子模式匹配项的替换结果,这里我们没有将它替换 $2 
7 //与正则相匹配的第一个字符串的第一个子匹配出现的偏移量 $3 
Water: 32.2F and Oil: 20.30F. //原字符串 newstrObj 
and Oil: //不与正则匹配的字符 
20.30F //与正则相匹配的第二个字符串的原字符串 
-5.85C //与正则相匹配的第二个字符串的第一个子模式与匹配的替换结果 
.30 //与正则相匹配的第二个字符串的第二个子模式匹配项的替换结果,这里我们没有将它替换 
22 //与正则相匹配的第二个字符串的第一个子匹配出现的偏移量 
Water: 32.2F and Oil: 20.30F. //原字符串 
. //不与正则匹配的字符 
上面的函数参数我们全部用到了。在实际中,我们只须用将xxF替换为xxC,根据要求,我们无须写这么多参数。 
例子8:

复制代码 代码如下:


function f2c(s) { 
var test = /(\d+(\.\d*)?)F\b/g; // 说明华氏温度可能模式有:123F或123.4F 
return(s.replace 
(test, 
function(strObj,$1) { 
return((($1-32) * 1/2) + "C"); 


); 

document.write(f2c("Water: 32.2F and Oil: 20.30F."));


输出:Water: 0.10000000000000142C and Oil: -5.85C. 
更多的应用: 
例子9:

复制代码 代码如下:


function f2c(s) { 
var test = /([\d]{4})-([\d]{1,2})-([\d]{1,2})/; 
return(s.replace 
(test, 
function($0,$1,$2,$3) { 
return($2 +"/" + $1); 


); 

document.write(f2c("today: 2011-03-29"));


输出:today: 03/2011 
split 方法 
将一个字符串分割为子字符串,然后将结果作为字符串数组返回。 
stringObj.split([separator[, limit]]) 
参数 
stringObj 
必选项。要被分解的 String 对象或文字。该对象不会被 split 方法修改。 
separator 
可选项。字符串或 正则表达式 对象,它标识了分隔字符串时使用的是一个还是多个字符。如果忽略该选项,返回包含整个字符串的单一元素数组。 
limit 
可选项。该值用来限制返回数组中的元素个数。 
说明 
split 方法的结果是一个字符串数组,在 stingObj 中每个出现 separator 的位置都要进行分解。separator 不作为任何数组元素的部分返回。 
例子10:

复制代码 代码如下:


function SplitDemo(){ 
var s, ss; 
var s = "The rain in Spain falls mainly in the plain."; 
// 正则表达式,用不分大不写的s进行分隔。 
ss = s.split(/s/i); 
return(ss); 

document.write(SplitDemo());


输出:The rain in ,pain fall, mainly in the plain. 

js正则表达式之exec()方法、match()方法以及search()方法 

先看代码:

var sToMatch = "test, Tes, tst, tset, Test, Tesyt, sTes";
var reEs = /es/gi;
alert(reEs.exec(sToMatch));
alert(sToMatch.match(reEs));
alert(sToMatch.search(reEs));

三个弹出框内容如下:

结果分析如下:

1、RegExp的exec()方法,有一个字符串参数,返回一个数组,数组的第一个条目是第一个匹配;其他的是反向引用。所以第一个返回的结果是第一个匹配的值es(不区分大小写)。

2、String对象有一个match()方法,它返回一个包含在字符串中所有匹配的数据。这个方法调用string对象,同时传给它一个RegExp对象。所以第二个弹出语句返回的是所有符合正则表达式的数组。

3、search()的字符串方法与indexOf()有些类似,但是它使用一个RegExp对象而非仅仅一个子字符串。search()方法返回 第一个匹配值的位置。所以第三处弹出的是“1”,即第二个字符就匹配了。注意的是search()方法不支持全局匹配正规表达式(带参数g)。

 

 var tel = /(^[0-9]{3,4}\-[0-9]{7,8}$)|(^[0-9]{7,8}$)|(^[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)|(13\d{9}$)|(15[0135-9]\d{8}$)|(18[267]\d{8}$)/;
var phone = document.getElementById("phoneNumber").value;
if(phone != "" && phone.replace(/\s/g,"")!="" && !(tel.exec(phone))) {
alert("电话号码格式不对,正确格式如下:\n座机号码:区号-座机号码(或)\n手机号码:11位手机号码");
return false;
}

 

  var temp = document.getElementById("email").value;
var myreg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
if(temp.value!=""){
if(!myreg.test(temp) && temp !="" && temp.replace(/\s/g,"")!=""){
alert("email格式不正确,请重新输入!");
//email.focus();
return false;
}
}

 

验证银行卡号

复制代码

//银行卡号校验//Description:  银行卡号Luhm校验//Luhm校验规则:16位银行卡号(19位通用):// 1.将未带校验位的 15(或18)位卡号从右依次编号 1 到 15(18),位于奇数位号上的数字乘以 2。// 2.将奇位乘积的个十位全部相加,再加上所有偶数位上的数字。// 3.将加法和加上校验位能被 10 整除。function luhmCheck(bankno){if (bankno.length < 16 || bankno.length > 19) {//$("#banknoInfo").html("银行卡号长度必须在16到19之间");return false;}var num = /^\d*$/;  //全数字if (!num.exec(bankno)) {//$("#banknoInfo").html("银行卡号必须全为数字");return false;}//开头6位var strBin="10,18,30,35,37,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,58,60,62,65,68,69,84,87,88,94,95,98,99";    if (strBin.indexOf(bankno.substring(0, 2))== -1) {//$("#banknoInfo").html("银行卡号开头6位不符合规范");return false;}var lastNum=bankno.substr(bankno.length-1,1);//取出最后一位(与luhm进行比较)var first15Num=bankno.substr(0,bankno.length-1);//前15或18位var newArr=new Array();for(var i=first15Num.length-1;i>-1;i--){    //前15或18位倒序存进数组newArr.push(first15Num.substr(i,1));}var arrJiShu=new Array();  //奇数位*2的积 <9var arrJiShu2=new Array(); //奇数位*2的积 >9var arrOuShu=new Array();  //偶数位数组for(var j=0;j<newArr.length;j++){if((j+1)%2==1){//奇数位if(parseInt(newArr[j])*2<9)arrJiShu.push(parseInt(newArr[j])*2);elsearrJiShu2.push(parseInt(newArr[j])*2);}else //偶数位arrOuShu.push(newArr[j]);}var jishu_child1=new Array();//奇数位*2 >9 的分割之后的数组个位数var jishu_child2=new Array();//奇数位*2 >9 的分割之后的数组十位数for(var h=0;h<arrJiShu2.length;h++){jishu_child1.push(parseInt(arrJiShu2[h])%10);jishu_child2.push(parseInt(arrJiShu2[h])/10);}        var sumJiShu=0; //奇数位*2 < 9 的数组之和var sumOuShu=0; //偶数位数组之和var sumJiShuChild1=0; //奇数位*2 >9 的分割之后的数组个位数之和var sumJiShuChild2=0; //奇数位*2 >9 的分割之后的数组十位数之和var sumTotal=0;for(var m=0;m<arrJiShu.length;m++){sumJiShu=sumJiShu+parseInt(arrJiShu[m]);}for(var n=0;n<arrOuShu.length;n++){sumOuShu=sumOuShu+parseInt(arrOuShu[n]);}for(var p=0;p<jishu_child1.length;p++){sumJiShuChild1=sumJiShuChild1+parseInt(jishu_child1[p]);sumJiShuChild2=sumJiShuChild2+parseInt(jishu_child2[p]);}      //计算总和sumTotal=parseInt(sumJiShu)+parseInt(sumOuShu)+parseInt(sumJiShuChild1)+parseInt(sumJiShuChild2);//计算Luhm值var k= parseInt(sumTotal)%10==0?10:parseInt(sumTotal)%10;        var luhm= 10-k;if(lastNum==luhm){$("#banknoInfo").html("Luhm验证通过");return true;}else{$("#banknoInfo").html("银行卡号必须符合Luhm校验");return false;}        }邮箱验证         var reg_email=/^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$/;

复制代码

 

验证手机号

复制代码

/*
根据〖中华人民共和国国家标准 GB 11643-1999〗中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。地址码表示编码对象常住户口所在县(市、旗、区)的行政区划代码。出生日期码表示编码对象出生的年、月、日,其中年份用四位数字表示,年、月、日之间不用分隔符。顺序码表示同一地址码所标识的区域范围内,对同年、月、日出生的人员编定的顺序号。顺序码的奇数分给男性,偶数分给女性。校验码是根据前面十七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码。出生日期计算方法。15位的身份证编码首先把出生年扩展为4位,简单的就是增加一个19或18,这样就包含了所有1800-1999年出生的人;2000年后出生的肯定都是18位的了没有这个烦恼,至于1800年前出生的,那啥那时应该还没身份证号这个东东,⊙﹏⊙b汗...
下面是正则表达式:出生日期1800-2099  (18|19|20)?\d{2}(0[1-9]|1[12])(0[1-9]|[12]\d|3[01])身份证正则表达式 /^\d{6}(18|19|20)?\d{2}(0[1-9]|1[12])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/i            15位校验规则 6位地址编码+6位出生日期+3位顺序号18位校验规则 6位地址编码+8位出生日期+3位顺序号+1位校验位校验位规则     公式:∑(ai×Wi)(mod 11)……………………………………(1)公式(1)中: i----表示号码字符从由至左包括校验码在内的位置序号; ai----表示第i位置上的号码字符值; Wi----示第i位置上的加权因子,其数值依据公式Wi=2^(n-1)(mod 11)计算得出。i 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1Wi 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 1*/
//身份证号合法性验证 
//支持15位和18位身份证号
//支持地址编码、出生日期、校验位验证function IdentityCodeValid(code) { var city={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江 ",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北 ",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏 ",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外 "};var tip = "";var pass= true;if(!code || !/^\d{6}(18|19|20)?\d{2}(0[1-9]|1[12])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/i.test(code)){tip = "身份证号格式错误";pass = false;}else if(!city[code.substr(0,2)]){tip = "地址编码错误";pass = false;}else{//18位身份证需要验证最后一位校验位if(code.length == 18){code = code.split('');//∑(ai×Wi)(mod 11)//加权因子var factor = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 ];//校验位var parity = [ 1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2 ];var sum = 0;var ai = 0;var wi = 0;for (var i = 0; i < 17; i++){ai = code[i];wi = factor[i];sum += ai * wi;}var last = parity[sum % 11];if(parity[sum % 11] != code[17]){tip = "校验位错误";pass =false;}}}if(!pass) alert(tip);return pass;}var c = '130981199312253466';var res= IdentityCodeValid(c);

复制代码

 

 

// 匹配手机号首尾,以类似“123****8901”的形式输出
'12345678901'.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2');

此段正则匹配字符串中的连续11位数字,替换中间4位为*号,输出常见的隐匿手机号的格式。如果要仅得到末尾4位,则可以改成如下形式:

// 匹配连续11位数字,并替换其中的前7位为*号
'15110280327'.replace(/\d{7}(\d{4})/, '*******$1');

补充注释:正则表达式中的括号即可用于分组,同时也用于定义子模式串,在replace()方法中,参数二中可以使用$n(n为数字)来依次引用模式串中用括号定义的字串。

 

$("#name").html(user.name.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2')); 隐藏手机号中间4位

 

常见正则表达式验证

复制代码

export const regExpConfig = {IDcard: /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/, // 身份证mobile: /^1([3|4|5|7|8|])\d{9}$/, // 手机号码telephone: /^(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}$/, // 固定电话num: /^[0-9]*$/, // 数字phoneNo: /(^1([3|4|5|7|8|])\d{9}$)|(^(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}$)/, // 电话或者手机policeNo: /^[0-9A-Za-z]{4,10}$/, // 账号4-10位数字或字母组成pwd: /^[0-9A-Za-z]{6,16}$/, // 密码由6-16位数字或者字母组成isNumAlpha: /^[0-9A-Za-z]*$/, // 字母或数字isAlpha: /^[a-zA-Z]*$/, // 是否字母isNumAlphaCn: /^[0-9a-zA-Z\u4E00-\uFA29]*$/, // 是否数字或字母或汉字isPostCode: /^[\d-]*$/i, // 是否邮编isNumAlphaUline: /^[0-9a-zA-Z_]*$/, // 是否数字、字母或下划线isNumAndThanZero: /^([1-9]\d*(\.\d+)?|0)$/, // 是否为整数且大于0/^[1-9]\d*(\.\d+)?$/isNormalEncode: /^(\w||[\u4e00-\u9fa5]){0,}$/, // 是否为非特殊字符(包括数字字母下划线中文)isTableName: /^[a-zA-Z][A-Za-z0-9#$_-]{0,29}$/, // 表名isInt: /^-?\d+$/, // 整数isTableOtherName: /^[\u4e00-\u9fa5]{0,20}$/, // 别名// isText_30: /^(\W|\w{1,2}){0,15}$/, // 正则// isText_20: /^(\W|\w{1,2}){0,10}$/, // 正则isText_30: /^(\W|\w{1}){0,30}$/, // 匹配30个字符,字符可以使字母、数字、下划线、非字母,一个汉字算1个字符isText_50: /^(\W|\w{1}){0,50}$/, // 匹配50个字符,字符可以使字母、数字、下划线、非字母,一个汉字算1个字符isText_20: /^(\W|\w{1}){0,20}$/, // 匹配20个字符,字符可以使字母、数字、下划线、非字母,一个汉字算1个字符isText_100: /^(\W|\w{1}){0,100}$/, // 匹配100个字符,字符可以使字母、数字、下划线、非字母,一个汉字算1个字符isText_250: /^(\W|\w{1}){0,250}$/, // 匹配250个字符,字符可以使字母、数字、下划线、非字母,一个汉字算1个字符isNotChina: /^[^\u4e00-\u9fa5]{0,}$/, // 不为中文  IDcard: /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/, // 身份证IDcardAndAdmin: /^(([1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X))|(admin))$/, // 身份证或者是admin账号IDcardTrim: /^\s*(([1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3})|([1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X))|(admin))\s*$/, // 身份证num1: /^[1-9]*$/, // 数字companyNO: /^qqb_[0-9a-zA-Z_]{1,}$/, // 公司人员账号imgType: /image\/(png|jpg|jpeg|gif)$/, // 上传图片类型isChina: /^[\u4e00-\u9fa5]{2,8}$/,isNozeroNumber: /^\+?[1-9]\d*$/, // 大于零的正整数float: /^\d+(\.?|(\.\d+)?)$/, // 匹配正整数或者小数 或者0.这个特殊值
}
查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. sqlserver函数大全

    SQL2008 表达式:是常量、变量、列或函数等与运算符的任意组合。https://www.2cto.com/database/201801/712174.html一旦成功地从表中检索出数据,就需要进一步操纵这些数据,以获得有用或有意义的结果。这些要求包括:执行计算与数学运算、转换数据、解析数值、组合值和聚合一…...

    2024/4/17 1:23:11
  2. MYSQL常见运算符和函数(四)

    字符函数 (1)CONCAT():字符连接 SELECT CONCAT(‘IMOOC’,’-‘,’MySQL’);//IMOOC-MySQL SELECT CONCAT (first_name,last_name) AS fullname FROM test; (2)CONCAT_WS():使用指定的分隔符进行字符连接,(第一个位置指定分隔符,后面的为分割的内容) SELECT CON…...

    2024/4/17 1:22:53
  3. HDU - 5909 Tree Cutting 树形dp + fwt 优化异或卷积和

    题意:给你一颗n个结点树,每个结点的权值为 vi (0<=vi<m,m<=210),定义一个子树的权值为这个子树节点的权值的异或。分别求权值为[0,m−1]的子树的个数mod(109+7)思路:考虑dp[x][val] 表示以x为根,异或权值为val的子树的个数。显然转移时有: dp[x][val]=dp[x][val]+∑i…...

    2024/4/18 17:03:41
  4. 解决谷歌浏览器无法使用插件的问题!

    chrome://flags/#enable-npapi 直接在谷歌浏览器的地址栏里面复制,进入里面所有的东西,对应的启用就好了。 _____________________________________________________学习笔记...

    2024/4/18 6:18:31
  5. 反编译教程-02(dex2jar和jdgui使用)

    这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到源代码吧,google了一下,确实很简单,以下是我的实践过程。在此郑重声明,贴出来的目的不是为了去破解人家的软件,完全是一种学习的态度,不过好像通过这种方式也可以去汉化一些外国软件。本文And…...

    2024/4/20 13:22:47
  6. 正则匹配 + re

    可能会遇到的正则匹配字符^ 匹配一行字符串的开头. 匹配任意字符,除了换行符[...] 匹配括号中的任一个,[amk] 匹配 a,m或k[^...] 不在[]中的字符:[^abc] 匹配除了a,b,c之外的字符* 匹配0个或多个的表达式+ 匹…...

    2024/4/17 1:23:11
  7. MySQL数据库内置函数

    mysql数据库中提供了很丰富的函数。mysql函数包括数学函数、字符串函数、日期和时间函数、条件判断函数、系统信息函数、加密函数、格式化函数等。通过这些函数,可以简化用户的操作。简单介绍几类函数的使用范围:数学函数: 这类函数只要用于处理数字。这类函数包括绝对值…...

    2024/4/17 1:22:41
  8. AndroidStudio插件GsonFormat之Json快速转换JavaBean

    安装方法一:1.Android studio File->Settings..->Plugins–>Browse repositores..搜索GsonFormat 2.安装插件,重启android studio方法二:1.下载GsonFormat.jar ; 2.Android studio File->Settings..->Plugins –>install plugin from disk..导入下载GsonFo…...

    2024/4/27 23:01:21
  9. Python正则匹配中文与编码总结

    ###字符串的编码乱码问题由来已久,真的是令人头疼。这不是在做正则匹配中文时候,编码又一次成了拦路虎,在这儿记录两点。第一,字符串编码。第二,正则匹配中文。 早期编码都用ASCII编码,用一个字节来处理编码。如大写A编码为65,但处理中文时候,一个字节显然不够,至少两…...

    2024/4/20 2:26:06
  10. 牛客2018暑假多校训练八-H(fwt)

    链接:https://www.nowcoder.com/acm/contest/146/H 来源:牛客网时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld题目描述Niuniu likes playing games. He has n piles of stones. The i-th pile has ai stones. He wants …...

    2024/4/16 6:11:07
  11. android反编译apk教程

    文章中所用到的反编译工具下载地址:android反编译工具.zip 一、下载jd-gui工具 该工具用于查看反编译后的源码。 二、下载apktool工具 该工具用于资源文件的提取,包括图片、布局文件。 使用步骤:解压apktool工具 将需要反编译的apk拷到apktool工具目录下,如test.apk 打开cm…...

    2024/4/17 1:22:47
  12. FWT模板(loading)

    ci=&#x2211;j&#x2297;k=iajbk=&#x2211;0&#x2264;k<2n&#x2211;0&#x2264;j<2n[j&#x2297;k=i]ajbk" role="presentation">ci=∑j⊗k=iajbk=∑0≤k<2n∑0≤j<2n[j⊗k=i]ajbkci=∑j⊗k=iajbk=∑0≤k<2n∑0≤j<2n[j…...

    2024/4/20 13:10:15
  13. 关于回调函数和钩子函数基础知识的整理

    回调函数:Callback Function 什么是回调函数? 首先做一个形象的比喻:你有一个任务,但是有一部分你不会做,或者说不愿做,所以我来帮你做这部分,你做你其它的任务工作或者等着我的消息,但是当我完成的时候我要通知你我做好了,你可以用了,我怎么通知你呢?你给我一部手机,让我做…...

    2024/4/20 15:58:04
  14. idea eclipse 离线 阿里java代码规范插件下载 最新离线安装插件Alibaba Java Coding Guidelines-1.0.6.zip

    idea eclipse 离线 阿里java代码规范插件下载 最新离线安装插件Alibaba Java Coding Guidelines-1.0.6.zip 为了让开发者更加方便、快速将规范推动并实行起来,阿里巴巴基于手册内容,研发了一套自动化的IDE检测插件(IDEA、Eclipse)。该插件在扫描代码后,将不符合规约的代码…...

    2024/4/17 1:23:47
  15. 正则匹配忽略大小写

    // 第一种:直接用正则,(?!)表示整体忽略大小写,如果单个,则可以写成^d(?!)oc表示oc忽略大小写,^d((?!)o)c表示只有o忽略大小写 String regex1 = "^(?i)doc$";// 第二种,采用Patter编译忽略大小写 String regex = "^doc$"; String s = "DoC&…...

    2024/4/17 1:24:47
  16. 微信小程序反编译简易教程

    安装虚拟机,登录微信 打开想要反编译的小程序 用re管理器打开 /data/data/com.tencent.mm/MicroMsg/{用户id}/appbrand/pkg 路径 查看最新的日期的wxapkg格式包 想办法搞下来(例如:用微信发送到手机) 然后下载 https://gitee.com/fi888/wxappUnpacker.git 安装node cd wxap…...

    2024/4/25 12:54:26
  17. fopen()函数详解

    1.2 文件的输入输出函数键盘、显示器、打印机、磁盘驱动器等逻辑设备, 其输入输出都可以通过文件管理的方法来完成。而在编程时使用最多的要算是磁盘文件, 因此本节主要以磁盘文件为主, 详细介绍Turbo C2.0提供的文件操作函数, 当然这些对文件的操作函数也适合于非磁盘文件的情…...

    2024/4/17 1:23:47
  18. 常用的正则匹配

    用户名正则匹配 import re# 6-20位 字母,数字,下划线 if re.match(r^[a-zA-Z0-9_]{6,20}$, "asxc56_"):print("匹配")邮箱正则匹配 # 邮箱 import reif re.match(r^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$, "153522217@qq.co…...

    2024/4/13 8:40:14
  19. [HDU6057]-Kanade's convolution-FWT子集卷积

    说在前面人老了脑子不好使了hhhhh 之前还想得很明白,去食堂吃了饭回来,连自己之前写的式子都看不懂了。。。题目HDU6057传送门题目大意给出一个两个长为2M" role="presentation">2M2M的数组A[]" role="presentation">A[]A[]和B[]"…...

    2024/4/18 13:23:48
  20. 安卓反编译就这么简单

    学习Android开发的过程中,你会向别人学习应用软件是如何开发出来的,那些漂亮的动画和复杂的布局可能让你爱不释手,作为开发者,你可能真的想知道的是如何实现这样的界面效果。现在,您可以通过安卓修改大师对apk进行反编译,通过对反编译的apk进行图片和文字的修改,代码逻辑…...

    2024/4/24 4:51:24

最新文章

  1. PHP基本原理

    PHP的基本原理如下&#xff1a; 解析&#xff1a;当客户端请求访问一个PHP文件时&#xff0c;服务器会将该文件交给PHP解析器进行解析。解析器会逐行读取代码&#xff0c;将其分词、语法分析、生成语法树并进行编译。 编译&#xff1a;PHP是一种编译型语言&#xff0c;但与传统…...

    2024/4/27 23:14:46
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. 第十三届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组 题解

    VP比赛链接 : 数据加载中... - 蓝桥云课 1 . 九进制 转 十进制 直接模拟就好了 #include <iostream> using namespace std; int main() {// 请在此输入您的代码int x 22*92*81*9;cout << x << endl ;return 0; } 2 . 顺子日期 枚举出每个情况即可 : …...

    2024/4/23 6:37:37
  4. C# 抽象类、接口

    &#xff08;1&#xff09;、抽象类和抽象方法的定义和实现&#xff1a;abstract override abstract class Vehicle{ public abstract void Run(); } 继承抽象类并且实现抽象方法 class RaceCar : Vehicle{ public override void Run(){ } } &#xff08;2&#xff09;、接口的…...

    2024/4/21 22:18:00
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/4/26 18:09:39
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/4/26 20:12:18
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/26 23:05:52
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/4/27 4:00:35
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/27 17:58:04
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/27 14:22:49
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/26 21:56:58
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/27 9:01:45
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/27 17:59:30
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/4/25 18:39:16
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/25 18:39:16
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/26 19:03:37
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/26 22:01:59
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/25 18:39:14
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/4/26 23:04:58
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/4/25 2:10:52
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/25 18:39:00
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/26 19:46:12
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/4/27 11:43:08
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/27 8:32:30
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57