Head First javaScript_#7表单信息验证

form对象厉害的地方:在与它也是个数组。负责存储表单中所有域。但它的数组元素并非利用数值索引存储,而是使用域独有,于name属性设定的标识符。

为什么每个表单域都能访问form对象?
  有时候不行,但请记住,表单域能用于调用需要访问其他表单域的验证函数。此时,每个表单域里都能访问form对象成为方便访问其他表单域的关键。这个对象通常被传入验证函数,让函数快速抓出需要的域。


onblur只要域不再是焦点即触发onblur。
onblur其实是onfocus的相反事件。如果

onfocus在元素或表单域取得输入焦点时触发,

onblur是失去焦点时被触发。

可使用alert框呈现验证信息。

@alert框是种很烦人的验证问题通知方式
@被动式验证辅助比较直觉,也比较不会骚扰用


@在表单域对象里有个form特性,使用数组表示

了整份表单的域

JS有种非常强大的内置工具--正则表达式,专门设计用于匹配文本模式。正则表达式用于创建模式,而后应用于文本字符串,搜索匹配的部分...正则表达式总是以斜线起始和结束

.  匹配任何字符,换行符除外


@许多元字符均以反斜线起始....与围起正则表达

式的斜线非常不一样
\b 匹配任何数字字符
\w 匹配任何字母数字(字母或数字)字符
\s 匹配空格 (空格包括空白字符,space,tab

,换行符,return/enter)

^字符串需以模式起始 (匹配模式的字符串前不

能有其他文字)

$ 字符串需以模式结束 (模式需为字符串的最后一

个字符)
/\b\b\b/ 000  333 123
/^cat/   cat00 catTj
/mouse$/ 011mouse Tmouse

深入正则表达式:限定符
不是元字符的任何文字将于正则表达式里“照样匹配”。也就是说,/howard/可找出任何包含“howard”的字符串,另外,还有另一种正则表达式结构,称为限定符,可进一步把模式调整的更好。限定符前为子模式,限定符即应用在子模式,并控制子模式出现在模式里的次数。

/字符串/原样输出

*  限定符前的子模式必须出现0或多次(子模式为可选的,可出现任意次数)

+ 限定符前的子模式必须出现1或多次(子模式必须出现,可出现任意次数)

? 限定符前的子模式必须出现0或1次(子模式为可选的,若出现也只能出现一次)

{n}  限定符前的子模式必须出现恰好n次(控制子模式可以出现的次数)

( ) 集合字符或/和元字符,成为子模式(虽然括号在技术上不算限定符,但常用于归类子模式,就像平常区分数学表达式一样)

模式限定
限定符使得正则表达式设计比起只有元字符更为精确。不在直接重复子模式,限定符能指定子模式出现的精确次数。(限定符控制子模式出现于正则表达式里的次数)
/^\d{5}-\d{4}$/ == /^\d\d\d\d\d-\d\d\d\d$/

利用元字符与限定符们可以创建相当强大,几乎可匹配任何字符串内容的正则表达式

RegExp对象的test()方法用于检查字符串是否包含正则表达式模式。

匹配虽少次数与最多次数
限定符{}可接受数字,决定子模式出现在字符串的次数。{min,max}
/^\w{5,8}$/
字符串为5-8个数字字母组成。

选替
它与or逻辑运算符非常像
this|that  如果匹配子模式this或that,模式匹配就成功了  (选替(|)提供指定可供选择的匹配模式的便利方式)

在集合中匹配可选字符
字符类常常把非常着重与可选字符的规则建立到子模式中。你可以把字符类想成一组匹配单一字符的规则。

[ characterClass ] 字符类是一组匹配单一字符的正则表达式规则

在正则表达式的模式中,字符类提供控制可选字符的有效率方式。
/d[iu]g/ ---  “dig” "dug"
/\$\d[\d\.]*/ “$3.50” "$5"  "$19.95"

别忘记正则表达式特殊字符需要转义
在正则表达式里具有特殊意义的字符需要经过转义,才能把实际字符放在正则表达式里。下列字符前均需加上反斜线(\)做转义:[ 、\ 、 ^、  $、  . 、 | 、 ? 、 *、  + 、 ()。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值