2021-06-27

正则表达式与表单验证

RegExp 对象表示正则表达式,它是对字符串执行模式匹配的强大工具JavaScript正则表达式:又称规则表达式。
正则表达式用于定义一些字符串的规则,计算机可以根据正则表达式,来检查一个字符串是否符合规则,可以将字符中符合规则的内容提取出来var 变量=new RegExp(“正则表达式”,“匹配模式”);使用typeof检查正则对象,则会返回object,var reg=new RegExp(“a”); 这个表达式可以用来检查一个字符串中是否含有字符a在构造函数中可以传递一个匹配模式作为第二个参数i 忽略大小写g 全局匹配
正则表达式的方法:
test()使用这个方法可以用来检查一个字符串中是否符合正则表达式的规则如果符合则返回true,否则返回false[] 使用中括号表示范围[abc] 等价于 a|b|c[a-z] 表示匹配所有的小写字母[A-Z] 表示匹配所有的大写字母[A-z] 表示匹配所有的字母(包含大小写)[0-9] 表示匹配所有的数字JavaScript正则表达式使用字面量来创建正则表达式语法: var 变量=/正则表达式/匹配模式使用字面量 的方法创建更加灵活
简单使用构造函数创建更加灵活
var reg=new RegExp(“a”,“i”);//用构造函数创建正则表达var reg=/a/iconsole.log(reg);创建一个正则表达式,去检 查一个字符串中是否含有a或b或creg=/a|b|c/;使用|表示或则的含义console.log(reg.test(“werwer”));
创建一个正则表达式,去检查一个字符串中是否含有字母reg=/a|b|c|d|e|f/;[] 使用中括号表示范围 [abc] 等价于 a|b|c,[a-z] 表示匹配所有的小写字母[A-Z] 表示匹配所有的大写字母[A-z] 表示匹配所有的字母(包含大小写)[0-9] 表示匹配所有的数字JavaScript字符串与正则表达式相关的方法支持正则表达式的String对象的方法search():检索与正则表达式相匹配的值;match():找到一个或多个正则表达式的匹配;replace():替换与正则表达式匹配的子串;split():把字符串分割为字符串数组。把字符串分割为字符串数组。该方法可以传递一个正则表达式作为参数,这样方法将会根据正则表达式去拆分该方法即使不指定全局匹配,也会全部拆分字符串;search():可以搜索字符串中是否含有指定内容
如果搜索到指定内容,则会返回第一次出现的索引,如果没有搜索到到返回-1
它可以接受一个正则表达式作为参数,然后会根据正则表达式去检索字符串
serach(): 只会查找第一个,即使设置全局匹配也没用macth():可以根据正则表达式,从一个字符串中将符合条件的内容提取出来默认情况下我们的macth只会找到第一个符合要求的内容,找到以后就停止检索我们可以设置正则表达式为全局匹配模式,这样就会匹配到所有的内容可以为一个正则表达式设置多个匹配模式,且顺序无所谓match()会将匹配到的内容封装到一个数组中返回,即使只查询到一个结果。
表单验证中经常遇到的就是验证姓名,网址,电话,电邮等,这都离不开正则的组合运用,举几个例相信你就会了。
验证名字: n a m e = t e s t i n p u t ( name = test_input( name=testinput(POST[“name”]);
if (!preg_match("/1 / " , /", /",name)) {
KaTeX parse error: Expected 'EOF', got '}' at position 25: … "只允许字母和空格!"; }̲ 验证E-mail:email = test_input(KaTeX parse error: Undefined control sequence: \w at position 38: …preg_match("/([\̲w̲\-]+\@[\w\-]+\.…email)) {
$emailErr = “无效的 email 格式!”;
}
验证 URL:
w e b s i t e = t e s t i n p u t ( website = test_input( website=testinput(POST[“website”]);
if (!preg_match("/\b(?😦?:https?|ftp)😕/|www.)[-a-z0-9+&@#/%?=~
|!:,.;]
[-a-z0-9+&@#/%
=~
|]/i",$website)) {
$websiteErr = “无效的 URL”;
}
用if把上面三个连起来:<?php
// 定义变量并设置为空值
$nameErr = $emailErr = $genderErr = $websiteErr = “”;
$name = $email = $gender = $comment = $website = “”;

if (KaTeX parse error: Expected '}', got 'EOF' at end of input: … { if (empty(_POST[“name”])) {
$nameErr = “Name is required”;
} else {
n a m e = t e s t i n p u t ( name = test_input( name=testinput(_POST[“name”]);
// 检查名字是否包含字母和空格
if (!preg_match("/2* / " , /", /",name)) {
$nameErr = “Only letters and white space allowed”;
}
}

if (empty($_POST[“email”])) {
$emailErr = “Email is required”;
} else {
e m a i l = t e s t i n p u t ( email = test_input( email=testinput(_POST[“email”]);
// 检查电邮地址语法是否有效
if (!preg_match("/([\w-]+@[\w-]+.[\w-]+)/",$email)) {
$emailErr = “Invalid email format”;
}
}

if (empty($POST[“website”])) {
$website = “”;
} else {
w e b s i t e = t e s t i n p u t ( website = test_input( website=testinput(POST[“website”]);
// 检查 URL 地址语言是否有效(此正则表达式同样允许 URL 中的下划线)
if (!preg_match("/\b(?😦?:https?|ftp)😕/|www.)[-a-z0-9+&@#/%?=~
|!:,.;]*[-a-z0-9+&@#/%
=~
|]/i",$website)) {
$websiteErr = “Invalid URL”;
}
}

if (empty($_POST[“comment”])) {
$comment = “”;
} else {
c o m m e n t = t e s t i n p u t ( comment = test_input( comment=testinput(_POST[“comment”]);
}

if (empty($_POST[“gender”])) {
$genderErr = “Gender is required”;
} else {
g e n d e r = t e s t i n p u t ( gender = test_input( gender=testinput(_POST[“gender”]);
}
}
?>


  1. a-zA-Z ↩︎

  2. a-zA-Z ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值