- 浏览: 539008 次
- 性别:
- 来自: 武汉
-
文章分类
最新评论
-
rgqancy:
终于明白为啥XML里要带jdbcType=XXXX了。
mybatis 需要注意的点 MyBatis 插入空值时,需要指定JdbcType (201 -
rzh0001:
Thanks a lot
mybatis 需要注意的点 MyBatis 插入空值时,需要指定JdbcType (201 -
guji528:
学习了,谢谢
mybatis 需要注意的点 MyBatis 插入空值时,需要指定JdbcType (201 -
AKka:
彻底清楚这个错误的原因了。向楼主学习了。
mybatis 需要注意的点 MyBatis 插入空值时,需要指定JdbcType (201 -
远去的渡口:
武汉小吃,我最爱热干面和鸭脖,想念啊~~
过年时候还学习编程, ...
过年的心情
匹配中文字符的正则表达式: [\u4e00-\u9fa5] 匹配双字节字符(包括汉字在内):[^\x00-\xff] 匹配空白行的正则表达式:\n\s*\r 匹配HTML标记的正则表达式:<(\S*?)[^>]*>.*?</\1>|<.*? /> 匹配首尾空白字符的正则表达式:^\s*|\s*$ 匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 匹配网址URL的正则表达式:[a-zA-z]+://[^\s]* 匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$ 匹配国内电话号码:\d{3}-\d{8}|\d{4}-\d{7} 匹配腾讯QQ号:[1-9][0-9]{4,} 匹配中国邮政编码:[1-9]\d{5}(?!\d) 匹配身份证:\d{15}|\d{18} 匹配ip地址:\d+\.\d+\.\d+\.\d+ 匹配特定数字: 匹配特定字符串:
评注:匹配中文还真是个头疼的事,有了这个表达式就好办了
评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
评注:可以用来删除空白行
评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力
评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式
评注:表单验证时很实用
评注:网上流传的版本功能很有限,上面这个基本可以满足需求
评注:表单验证时很实用
评注:匹配形式如 0511-4405222 或 021-87888822
评注:腾讯QQ号从10000开始
评注:中国邮政编码为6位数字
评注:中国的身份证为15位或18位
评注:提取ip地址时有用
^[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)
评注:处理大量数据时有用,具体应用时注意修正
^[A-Za-z]+$ //匹配由26个英文字母组成的字符串
^[A-Z]+$ //匹配由26个英文字母的大写组成的字符串
^[a-z]+$ //匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$ //匹配由数字和26个英文字母组成的字符串
^\w+$ //匹配由数字、26个英文字母或者下划线组成的字符串
评注:最基本也是最常用的一些表达式
1. 什么是正则表达式
基本说来,正则表达式是一种用来描述一定数量文本的模式。 Regex代表 Regular Express。本文将用 <<regex>>来表示一段具体的正则表达式。
一段文本就是最基本的模式,简单的匹配相同的文本。
2. 不同的正则表达式引擎
正则表达式引擎是一种可以处理正则表达式的软件。通常,引擎是更大的应用程序的一部分。在软件世界,不同的正则表达式并不互相兼容。本教程会集中讨论 Perl 5 类型的引擎,因为这种引擎是应用最广泛的引擎。同时我们也会提到一些和其他引擎的区别。许多近代的引擎都很类似,但不完全一样。例如 .NET正则库, JDK正则包。
3. 文字符号
最基本的正则表达式由单个文字符号组成。如 <<a>>,它将匹配字符串中第一次出现的字符“ a”。如对字符串“ Jack is a boy”。“ J”后的“ a”将被匹配。而第二个“ a”将不会被匹配。
正则表达式也可以匹配第二个“ a”,这必须是你告诉正则表达式引擎从第一次匹配的地方开始搜索。在文本编辑器中,你可以使用“查找下一个”。在编程语言中,会有一个函数可以使你从前一次匹配的位置开始继续向后搜索。
类似的, <<cat>>会匹配“ About cats and dogs”中的“ cat”。这等于是告诉正则表达式引擎,找到一个 <<c>>,紧跟一个 <<a>>,再跟一个 <<t>>。
要注意,正则表达式引擎缺省是大小写敏感的。除非你告诉引擎忽略大小写,否则 <<cat>>不会匹配“ Cat”。
· 特殊字符
对于文字字符,有 11个字符被保留作特殊用途。他们是:
[ ] \ ^ $ . | ? * + ( )
这些特殊字符也被称作元字符。
如果你想在正则表达式中将这些字符用作文本字符,你需要用反斜杠“ \”对其进行换码 (escape)。例如你想匹配“ 1+1=2”,正确的表达式为 <<1\+1=2>>.
需要注意的是, <<1+1=2>>也是有效的正则表达式。但它不会匹配“ 1+1=2”,而会匹配“ 123+111=234”中的“ 111=2”。因为“ +”在这里表示特殊含义(重复 1次到多次)。
在编程语言中,要注意,一些特殊的字符会先被编译器处理,然后再传递给正则引擎。因此正则表达式 <<1\+2=2>>在 C++中要写成“ 1\\+1=2”。为了匹配“ C:\temp”,你要用正则表达式 <<C:\\temp>>。而在 C++中,正则表达式则变成了“ C:\\\\temp”。
· 不可显示字符
可以使用特殊字符序列来代表某些不可显示字符:
<<\t>>代表 Tab(0x09)
<<\r>>代表回车符 (0x0D)
<<\n>>代表换行符 (0x0A)
要注意的是 Windows中文本文件使用“ \r\n”来结束一行而 Unix使用“ \n”。
4. 正则表达式引擎的内部工作机制
知道正则表达式引擎是如何工作的有助于你很快理解为何某个正则表达式不像你期望的那样工作。
有两种类型的引擎:文本导向 (text-directed)的引擎和正则导向 (regex-directed)的引擎。 Jeffrey Friedl把他们称作 DFA和 NFA引擎。本文谈到的是正则导向的引擎。这是因为一些非常有用的特性,如“惰性”量词 (lazy quantifiers)和反向引用 (backreferences),只能在正则导向的引擎中实现。所以毫不意外这种引擎是目前最流行的引擎。
你可以轻易分辨出所使用的引擎是文本导向还是正则导向。如果反向引用或“惰性”量词被实现,则可以肯定你使用的引擎是正则导向的。你可以作如下测试:将正则表达式 <<regex|regex not>>应用到字符串“ regex not”。如果匹配的结果是 regex,则引擎是正则导向的。如果结果是 regex not,则是文本导向的。因为正则导向的引擎是“猴急”的,它会很急切的进行表功,报告它找到的第一个匹配 。
· 正则导向的引擎总是返回最左边的匹配
这是需要你理解的很重要的一点:即使以后有可能发现一个“更好”的匹配,正则导向的引擎也总是返回最左边的匹配。
当把 <<cat>>应用到“ He captured a catfish for his cat”,引擎先比较 <<c>>和“ H”,结果失败了。于是引擎再比较 <<c>>和“ e”,也失败了。直到第四个字符, <<c>>匹配了“ c”。 <<a>>匹配了第五个字符。到第六个字符 <<t>>没能匹配“ p”,也失败了。引擎再继续从第五个字符重新检查匹配性。直到第十五个字符开始, <<cat>>匹配上了“ catfish”中的“ cat”,正则表达式引擎急切的返回第一个匹配的结果,而不会再继续查找是否有其他更好的匹配。
5. 字符集
字符集是由一对方括号“ []”括起来的字符集合。使用字符集,你可以告诉正则表达式引擎仅仅匹配多个字符中的一个。如果你想匹配一个“ a”或一个“ e”,使用 <<[ae]>>。你可以使用 <<gr[ae]y>>匹配 gray或 grey。这在你不确定你要搜索的字符是采用美国英语还是英国英语时特别有用。相反, <<gr[ae]y>>将不会匹配 graay或 graey。字符集中的字符顺序并没有什么关系,结果都是相同的。
你可以使用连字符“ -”定义一个字符范围作为字符集。 <<[0-9]>>匹配 0到 9之间的单个数字。你可以使用不止一个范围。 <<[0-9a-fA-F] >>匹配单个的十六进制数字,并且大小写不敏感。你也可以结合范围定义与单个字符定义。 <<[0-9a-fxA-FX]>>匹配一个十六进制数字或字母 X。再次强调一下,字符和范围定义的先后顺序对结果没有影响。
· 字符集的一些应用
查找一个可能有拼写错误的单词,比如 <<sep[ae]r[ae]te>> 或 <<li[cs]en[cs]e>>。
查找程序语言的标识符, <<A-Za-z_][A-Za-z_0-9]*>>。 (*表示重复 0或多次 )
查找 C风格的十六进制数 <<0[xX][A-Fa-f0-9]+>>。 (+表示重复一次或多次 )
· 取反字符集
在左方括号“ [”后面紧跟一个尖括号“ ^”,将会对字符集取反。结果是字符集将匹配任何不在方括号中的字符。不像“ .”,取反字符集是可以匹配回车换行符的。
需要记住的很重要的一点是,取反字符集必须要匹配一个字符。 <<q[^u]>>并不意味着:匹配一个 q,后面没有 u跟着。它意味着:匹配一个 q,后面跟着一个不是 u的字符。所以它不会匹配“ Iraq”中的 q,而会匹配“ Iraq is a country”中的 q和一个空格符。事实上,空格符是匹配中的一部分,因为它是一个“不是 u的字符”。
如果你只想匹配一个 q,条件是 q后面有一个不是 u的字符,我们可以用后面将讲到的向前查看来解决。
· 字符集中的元字符
需要注意的是,在字符集中只有 4个 字符具有特殊含义。它们是:“ ] \ ^ -”。“ ]”代表字符集定义的结束;“ \”代表转义;“ ^”代表取反;“ -”代表范围定义。其他常见的元字符在字符集定义内部都是正常字符,不需要转义。例如,要搜索星号 *或加号 +,你可以用 <<[+*]>>。当然,如果你对那些通常的元字符进行转义,你的正则表达式一样会工作得很好,但是这会降低可读性。
在字符集定义中为了将反斜杠“ \”作为一个文字字符而非特殊含义的字符,你需要用另一个反斜杠对它进行转义。 <<[\\x]>>将会匹配一个反斜杠和一个 X。“ ]^-”都可以用反斜杠进行转义,或者将他们放在一个不可能使用到他们特殊含义的位置。我们推荐后者,因为这样可以增加可读性。比如对于字符“ ^”,将它放在除了左括号“ [”后面的位置,使用的都是文字字符含义而非取反含义。如 <<[x^]>>会匹配一个 x或 ^。 <<[]x]>>会匹配一个“ ]”或“ x”。 <<[-x]>>或 <<[x-]>>都会匹配一个“ -”或“ x”。
· 字符集的简写
因为一些字符集非常常用,所以有一些简写方式。
<<\d>>代表 <<[0-9]>>;
<<\w>>代表单词字符。这个是随正则表达式实现的不同而有些差异。绝大多数的正则表达式实现的单词字符集都包含了 <<A-Za-z0-9_]>>。
<<\s>>代表“白字符”。这个也是和不同的实现有关的。在绝大多数的实现中,都包含了空格符和 Tab符,以及回车换行符 <<\r\n>>。
字符集的缩写形式可以用在方括号之内或之外。 <<\s\d>>匹配一个白字符后面紧跟一个数字。 <<[\s\d]>>匹配单个白字符或数字。 <<[\da-fA-F]>>将匹配一个十六进制数字。
取反字符集的简写
<<[\S]>> = <<[^\s]>>
<<[\W]>> = <<[^\w]>>
<<[\D]>> = <<[^\d]>>
· 字符集的重复
如果你用“ ?*+”操作符来重复一个字符集,你将会重复整个字符集。而不仅是它匹配的那个字符。正则表达式 <<[0-9]+>>会匹配 837以及 222。
如果你仅仅想重复被匹配的那个字符,可以用向后引用达到目的。我们以后将讲到向后引用。
6. 使用 ?* 或 + 进行重复
?:告诉引擎匹配前导字符 0次或一次。事实上是表示前导字符是可选的。
+:告诉引擎匹配前导字符 1次或多次
*:告诉引擎匹配前导字符 0次或多次
<[A-Za-z][A-Za-z0-9]*>匹配没有属性的 HTML标签,“ <”以及“ >”是文字符号。第一个字符集匹配一个字母,第二个字符集匹配一个字母或数字。
我们似乎也可以用 <[A-Za-z0-9]+>。但是它会匹配 <1>。但是这个正则表达式在你知道你要搜索的字符串不包含类似的无效标签时还是足够有效的。
· 限制性重复
许多现代的正则表达式实现,都允许你定义对一个字符重复多少次。词法是: {min,max}。 min和 max都是非负整数。如果逗号有而 max被忽略了,则 max没有限制。如果逗号和 max都被忽略了,则重复 min次。
因此 {0,}和 *一样, {1, }和 + 的作用一样。
你可以用 <<\b[1-9][0-9]{3}\b>>匹配 1000~9999之间的数字 (“ \b”表示单词边界 )。 <<\b[1-9][0-9]{2,4}\b>>匹配一个在 100~99999之间的数字。
· 注意贪婪性
假设你想用一个正则表达式匹配一个 HTML标签。你知道输入将会是一个有效的 HTML文件,因此正则表达式不需要排除那些无效的标签。所以如果是在两个尖括号之间的内容,就应该是一个 HTML标签。
许多正则表达式的新手会首先想到用正则表达式 << <.+> >>,他们会很惊讶的发现,对于测试字符串,“ This is a <EM>first</EM> test”,你可能期望会返回 <EM>,然后继续进行匹配的时候,返回 </EM>。
但事实是不会。正则表达式将会匹配“ <EM>first</EM>”。很显然这不是我们想要的结果。原因在于“ +”是贪婪的。也就是说,“ +”会导致正则表达式引擎试图尽可能的重复前导字符。只有当这种重复会引起整个正则表达式匹配失败的情况下,引擎会进行回溯。也就是说,它会放弃最后一次的“重复”,然后处理正则表达式余下的部分。
和“ +”类似,“ ?*”的重复也是贪婪的。
· 深入正则表达式引擎内部
让我们来看看正则引擎如何匹配前面的例子。第一个记号是“ <”,这是一个文字符号。第二个符号是“ .”,匹配了字符“ E”,然后“ +”一直可以匹配其余的字符,直到一行的结束。然后到了换行符,匹配失败 (“ .”不匹配换行符 )。于是引擎开始对下一个正则表达式符号进行匹配。也即试图匹配“ >”。到目前为止,“ <.+”已经匹配了“ <EM>first</EM> test”。引擎会试图将“ >”与换行符进行匹配,结果失败了。于是引擎进行回溯。结果是现在“ <.+”匹配“ <EM>first</EM> tes”。于是引擎将“ >”与“ t”进行匹配。显然还是会失败。这个过程继续,直到“ <.+”匹配“ <EM>first</EM”,“ >”与“ >”匹配。于是引擎找到了一个匹配“ <EM>first</EM>”。记住,正则导向的引擎是“急切的”,所以它会急着报告它找到的第一个匹配。而不是继续回溯,即使可能会有更好的匹配,例如“ <EM>”。所以我们可以看到,由于“ +”的贪婪性,使得正则表达式引擎返回了一个最左边的最长的匹配。
· 用懒惰性取代贪婪性
一个用于修正以上问题的可能方案是用“ +”的惰性代替贪婪性。你可以在“ +”后面紧跟一个问号“ ?”来达到这一点。“ *”,“ {}”和“ ?”表示的重复也可以用这个方案。因此在上面的例子中我们可以使用“ <.+?>”。让我们再来看看正则表达式引擎的处理过程。
再一次,正则表达式记号“ <”会匹配字符串的第一个“ <”。下一个正则记号是“ .”。这次是一个懒惰的“ +”来重复上一个字符。这告诉正则引擎,尽可能少的重复上一个字符。因此引擎匹配“ .”和字符“ E”,然后用“ >”匹配“ M”,结果失败了。引擎会进行回溯,和上一个例子不同,因为是惰性重复,所以引擎是扩展惰性重复而不是减少,于是“ <.+”现在被扩展为“ <EM”。引擎继续匹配下一个记号“ >”。这次得到了一个成功匹配。引擎于是报告“ <EM>”是一个成功的匹配。整个过程大致如此。
· 惰性扩展的一个替代方案
我们还有一个更好的替代方案。可以用一个贪婪重复与一个取反字符集:“ <[^>]+>”。之所以说这是一个更好的方案在于使用惰性重复时,引擎会在找到一个成功匹配前对每一个字符进行回溯。而使用取反字符集则不需要进行回溯。
最后要记住的是,本教程仅仅谈到的是正则导向的引擎。文本导向的引擎是不回溯的。但是同时他们也不支持惰性重复操作。
7. 使用“ . ”匹配几乎任意字符
在正则表达式中,“ .”是最常用的符号之一。不幸的是,它也是最容易被误用的符号之一。
“ .”匹配一个单个的字符而不用关心被匹配的字符是什么。唯一的例外是新行符。在本教程中谈到的引擎,缺省情况下都是不匹配新行符的。因此在缺省情况下,“ .”等于是字符集 [^\n\r](Window)或 [^\n]( Unix)的简写。
这个例外是因为历史的原因。因为早期使用正则表达式的工具是基于行的。它们都是一行一行的读入一个文件,将正则表达式分别应用到每一行上去。在这些工具中,字符串是不包含新行符的。因此“ .”也就从不匹配新行符。
现代的工具和语言能够将正则表达式应用到很大的字符串甚至整个文件上去。本教程讨论的所有正则表达式实现都提供一个选项,可以使“ .”匹配所有的字符,包括新行符。在 RegexBuddy, EditPad Pro或 PowerGREP等工具中,你可以简单的选中“点号匹配新行符”。在 Perl中,“ .”可以匹配新行符的模式被称作“单行模式”。很不幸,这是一个很容易混淆的名词。因为还有所谓“多行模式”。多行模式只影响行首行尾的锚定 (anchor),而单行模式只影响“ .”。
其他语言和正则表达式库也采用了 Perl的术语定义。当在 .NET Framework中使用正则表达式类时,你可以用类似下面的语句来激活单行模式: Regex.Match(“string”,”regex”,RegexOptions.SingleLine)
· 保守的使用点号“ .”
点号可以说是最强大的元字符。它允许你偷懒:用一个点号,就能匹配几乎所有的字符。但是问题在于,它也常常会匹配不该匹配的字符。
我会以一个简单的例子来说明。让我们看看如何匹配一个具有“ mm/dd/yy”格式的日期,但是我们想允许用户来选择分隔符。很快能想到的一个方案是 <<\d\d.\d\d.\d\d>>。看上去它能匹配日期“ 02/12/03”。问题在于 02512703也会被认为是一个有效的日期。
<<\d\d[-/.]\d\d[-/.]\d\d>>看上去是一个好一点的解决方案。记住点号在一个字符集里不是元字符。这个方案远不够完善,它会匹配“ 99/99/99”。而 <<[0-1]\d[-/.][0-3]\d[-/.]\d\d>>又更进一步。尽管他也会匹配“ 19/39/99”。你想要你的正则表达式达到如何完美的程度取决于你想达到什么样的目的。如果你想校验用户输入,则需要尽可能的完美。如果你只是想分析一个已知的源,并且我们知道没有错误的数据,用一个比较好的正则表达式来匹配你想要搜寻的字符就已经足够。
8. 字符串开始和结束的锚定
锚定和一般的正则表达式符号不同,它不匹配任何字符。相反,他们匹配的是字符之前或之后的位置。“ ^”匹配一行字符串第一个字符前的位置。 <<^a>>将会匹配字符串“ abc”中的 a。 <<^b>>将不会匹配“ abc”中的任何字符。
类似的, $匹配字符串中最后一个字符的后面的位置。所以 <<c$>>匹配“ abc”中的 c。
· 锚定的应用
在编程语言中校验用户输入时,使用锚定是非常重要的。如果你想校验用户的输入为整数,用 <<^\d+$>>。
用户输入中,常常会有多余的前导空格或结束空格。你可以用 <<^\s*>>和 <<\s*$>>来匹配前导空格或结束空格。
· 使用“ ^”和“ $”作为行的开始和结束锚定
如果你有一个包含了多行的字符串。例如:“ first line\n\rsecond line” (其中 \n\r表示一个新行符 )。常常需要对每行分别处理而不是整个字符串。因此,几乎所有的正则表达式引擎都提供一个选项,可以扩展这两种锚定的含义。“ ^”可以匹配字串的开始位置 (在 f之前 ),以及每一个新行符的后面位置 (在 \n\r和 s之间 )。类似的, $会匹配字串的结束位置 (最后一个 e之后 ),以及每个新行符的前面 (在 e与 \n\r之间 )。
在 .NET中,当你使用如下代码时,将会定义锚定匹配每一个新行符的前面和后面位置: Regex.Match("string", "regex", RegexOptions.Multiline)
应用: string str = Regex.Replace(Original, "^", "> ", RegexOptions.Multiline)--将会在每行的行首插入“ > ”。
· 绝对锚定
<<\A>>只匹配整个字符串的开始位置, <<\Z>>只匹配整个字符串的结束位置。即使你使用了“多行模式”, <<\A>>和 <<\Z>>也从不匹配新行符。
即使 \Z和 $只匹配字符串的结束位置,仍然有一个例外的情况。如果字符串以新行符结束,则 \Z和 $将会匹配新行符前面的位置,而不是整个字符串的最后面。这个“改进”是由 Perl引进的,然后被许多的正则表达式实现所遵循,包括 Java, .NET等。如果应用 <<^[a-z]+$>>到“ joe\n”,则匹配结果是“ joe”而不是“ joe\n”。
发表评论
-
html focus 引入 类似微博的效果
2012-09-18 18:01 1414<!DOCTYPE html PUBLIC &q ... -
javascript 类编程(未完)
2010-07-20 18:03 1532最近想总结一下JavaScript类编程,有时间写一点。 J ... -
正则表达式
2010-01-20 14:48 1048正则表达式用于字符串 ... -
insertAdjacentHTML 用法
2010-01-09 21:13 1945insertAdjacentHTML方法示例 添加HTML内 ... -
float margin padding
2009-12-23 16:46 2527今天做网站的时候发 ... -
WEB2.0标准教程:第二天 什么是名字空间
2009-12-14 10:28 1109DOCTYPE声明好以后,接下来的代码是: <html ... -
CSS兼容:如何解决IE7和IE8的BUG
2009-12-14 10:04 2346CSS兼容问题已经是CSS网页布局技术中的重要组成部分,也让 ... -
悟道web标准:前端性能优化
2009-12-14 09:40 1633悟道web标准:前端性能优化 前端性能优化完全是一个技术话题 ... -
JavaScript对象探讨
2009-12-13 11:39 1106由于JavaScript的灵活性,可以让每个人按照自己的习惯进 ... -
用css网站布局之十步实录
2009-12-10 11:32 1339首先需要规划网站,本教程将以下图为例构建网站 其基本布局见 ... -
WEB标准最佳实践:五个需要注意的地方
2009-12-09 21:32 1007一、永远使用小写字母 不好的做法: <DI ... -
不要内置JavaScript脚本 并将它置于HTML文档底部
2009-12-09 21:27 1559不要内置JavaScript脚本,这不是1996年了! ... -
javascript uri 编码
2009-10-19 10:53 1979对比 javascript url编码 javascript ... -
javascript 购物车
2009-10-17 13:13 3393购物车相当于现实中超 ... -
doument.execomand 用法
2009-07-11 15:54 14422D-Position 允许通过拖曳移动绝对定位的对象。 ... -
clientX pageX
2009-06-26 15:21 2167screenX:鼠标在显示屏幕上的坐标。 clientX ... -
hasOwnProperty
2009-06-26 11:19 1683JavaScript中hasOwnProperty函数方 ... -
getBoundingClientRect()
2009-06-25 15:16 1323getBoundingClientRect() 来获取页面 ... -
jquery 选择器 使用
2009-06-15 17:01 1512[翻译]jQuery 选择器的使用 ... -
Ext 3.0 core 简要pdf 下载
2009-06-07 11:02 1286今天早上 无意中看到Ext中文 网站有Ext3.0 core ...
相关推荐
1.3. 在实际应用中,正则表达式广泛用于表单验证,比如验证用户输入的邮箱格式、电话号码格式等,以及在编辑器中进行文本搜索和替换。 在JavaScript中,正则表达式有两种创建方式: 2.1.1. 使用构造函数`RegExp`,...
其中包括windows和linux文件路径的正则表达式;去除空格和斜杠转换的replaceall方法
- 表单验证:例如,验证邮箱地址 `/\S+@\S+\.\S+/` 或电话号码 `/^\d{3}-\d{8}$|^\d{4}-\d{7}$/`。 - 数据提取:从HTML或JSON文本中提取所需信息。 - 替换文本:批量替换特定模式的文本,如将所有空格替换为...
例如,如何使用正则表达式来验证表单输入、清洗HTML标记、解析URL参数等。 综上所述,《精通正则表达式(第三版)》不仅涵盖了正则表达式的理论知识,还提供了大量的实践指导,对于希望深入了解并熟练掌握正则...
在表单验证中,如果用户输入不符合邮箱格式,可以通过相应的提示信息告知用户,并阻止表单提交: ```javascript if($(this).attr('res')=='2' && !emailpreg.test($(this).val())){ $(this).css("border","1px ...
在网页表单中,按下回车键时自动跳转到下一个表单元素,可以利用事件监听来实现: ```javascript // 页面内回车键跳转至下一个焦点 document.getElementById("inputField").addEventListener("keydown", function...
在WEB开发中,正则表达式常用于表单验证,如邮箱、电话号码格式的检查。在脚本开发中,它们可用于数据清洗、日志分析等任务。熟练使用正则表达式测试工具,能帮助开发者快速验证正则表达式的正确性,避免因错误导致...
在JavaScript中,正则表达式通常用于字符串操作,例如验证表单输入、搜索文本以及替换字符等。 #### 2. 验证数字和小数点的正则表达式 要限制文本框只能输入数字并允许小数点,可以使用如下的正则表达式: ```...
正则表达式的运用非常广泛,从简单的文本查找到复杂的表单验证,都是其大展拳脚的场合。JavaScript的全局搜索和替换方法,如`String.prototype.match()`、`String.prototype.search()`、`String.prototype.replace()...
"php表单数据验证支持正则表达式和自定义错误返回"这一主题,主要涉及到两个核心概念:正则表达式验证和自定义错误处理。 **正则表达式验证**: 1. **基础概念**:正则表达式(Regular Expression)是一种模式匹配...
8. **响应式验证**: - 根据设备特性(如手机、平板、桌面)调整验证策略,确保在不同环境下用户体验一致。 9. **HTML5内置验证**: - HTML5引入了一些新的属性,如`required`、`pattern`、`min`、`max`等,配合...
前端开发中,正则表达式常用于表单验证,确保用户输入的数据格式正确,如手机号码、身份证号、日期等。后端开发中,正则表达式则常用于数据清洗、过滤非法请求以及数据提取等任务。不论是在前端还是后端,熟练掌握...
Delphi 正则表达式控件 DIRegEx v5.0 是一款专为 Delphi 开发者设计的强大工具,用于在 Delphi 应用程序中实现正则表达式的匹配、查找、替换等功能。DIRegEx 提供了一种简单且直观的方式来处理字符串模式匹配,大大...
在显示带有错误信息的表单时,可以将错误信息存储在变量中,并在重新渲染表单时显示。这样,用户可以清楚地看到哪里出了问题: ```php $errors = []; if (empty($_POST['username'])) { $errors[] = "用户名不能为...
在网页开发中,表单(Form)是收集用户数据的重要工具,而表单验证则是确保用户输入的数据符合预期格式和规则的关键步骤。本教程将详细讲解如何使用HTML、JavaScript中的`onfocus()`和`onblur()`事件来实现邮箱注册...
在Web开发中,这些正则表达式可以用于HTML表单验证、JavaScript函数验证,或在数据提交到服务器前进行客户端验证。这样可以提高用户体验,减轻服务器负担,并且让数据结构更规范。不过需要注意的是,正则表达式可能...
在实际应用中,正则表达式的校验功能可用于多种场景,比如表单验证、数据清洗等。不过,需要注意以下几点: - 正则表达式必须正确设计,以确保能够准确匹配所需的数据类型。 - 正则表达式可能因为过于复杂而降低...
正则表达式是一种强大的字符串匹配工具,广泛应用于计算机科学中的字符串处理、表单验证、文本处理等场景。正则表达式可以用来验证数据格式,如用户名、密码、电子邮箱、URL、IP地址等。 用户名和密码的正则表达式...