数据安全验证之正则表达式

PHP表单设置正则验证:守护数据安全与用户体验 通过明确验证需求、编写正则表达式、在PHP中进行验证、处理验证结果以及优化验证性能等步骤,我们可以有效地在PHP表单中设置正则验证。在未来的Web开发中,我们应该更加重视表单验证的作用,并不断探索更加高效、安全的验证方法。通过正则验证,我们可以对用户输入的数据进行严格的格式检查,确保数据符合预期的规范,从而大大降低安全风险。为了优化验证性能,我们可以采取一些措施,如减少正则表达式的复杂性、对输入数据进行预处理等。:正则验证可以确保用户输入的数据符合统一的格式要求,从而保持数据的一致性。函数来进行正则验证。 阅读详情
这几天正在制作用户登陆这一块,用户登陆其中我觉得最烦人的就是输入数据的验证;虽然微软给了我们几个强的控件,但是自己写正则表达式那是相当的耗时间啊;在网上有很多人在网上发部了很多有用的正则表达式,可能以后会再次用到这些表达式,这里把它记录下来;通过验证控件并不是100%保险的,因为用户控件只是在客户端验证,有些无聊的人根本不通来那些来提交数据,所以我们还是要在服务端再次验证,这样正则表达式就成为了我们的重要工具啦.

   通过这几天的努力我收集同时也自己写了几个正则表达式,Look:
   1.验证用户名和密码:("^[a-zA-Z]/w{5,15}$")正确格式:"[A-Z][a-z]_[0-9]"组成,并且第一个字必须为字母6~16位;
   
2.验证电话号码:("^(/d{3.4}-)/d{7,8}$")正确格式:xxx/xxxx-xxxxxxx/xxxxxxxx;
   
3.验证身份证号(15位或18位数字):("^/d{15}|/d{18}$");
   
4.验证Email地址:("^/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*$");
   5.只能输入由数字和26个英文字母组成的字符串:("^[A-Za-z0-9]+$")  ;
   
6.整数或者小数:^[0-9]+/.{0,1}[0-9]{0,2}$
   
7.只能输入数字:"^[0-9]*$"。
   
8.只能输入n位的数字:"^/d{n}$"。
   
9.只能输入至少n位的数字:"^/d{n,}$"。
   
10.只能输入m~n位的数字:。"^/d{m,n}$"
   
11.只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"。
   
12.只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$"。
   
13.只能输入有1~3位小数的正实数:"^[0-9]+(.[0-9]{1,3})?$"。
   
14.只能输入非零的正整数:"^/+?[1-9][0-9]*$"。
   
15.只能输入非零的负整数:"^/-[1-9][]0-9"*$。
   
16.只能输入长度为3的字符:"^.{3}$"。
   
17.只能输入由26个英文字母组成的字符串:"^[A-Za-z]+$"。
   
18.只能输入由26个大写英文字母组成的字符串:"^[A-Z]+$"。
   
19.只能输入由26个小写英文字母组成的字符串:"^[a-z]+$"。
   
20.验证是否含有^%&',;=?$/"等字符:"[^%&',;=?$/x22]+"。
   
21.只能输入汉字:"^[/u4e00-/u9fa5]{0,}$"
   
22.验证URL:"^http://([/w-]+/.)+[/w-]+(/[/w-./?%&=]*)?$"。
   
23.验证一年的12个月:"^(0?[1-9]|1[0-2])$"正确格式为:"01"~"09"和"1"~"12"。
   
24.验证一个月的31天:"^((0?[1-9])|((1|2)[0-9])|30|31)$"正确格式为;"01"~"09"和"1"~"31"。
 
     从上面我们可以看到:"^"表示后面紧跟着的字符为开头;与之相对应的式"$"以紧跟前面的字符为结尾.但是要注意的式当"^"位于"[]"里时,表示"非"的意思,例如:[^AZ]表示不能为"AZ"中的任一个字符."[]"表示当中的一个字符."{}"可以取得一个范围,例如"{9}"表示9个,而"{1,9}"表示1到9个字符.
 
       下面我们看看正则表达式在Asp.Net数据验证中的应用,第一个当然式在服务器验证控件中的应用了,很简单看下面的代码:

<asp:RegularExpressionValidator ID="RegularExpressionValidator1" ControlToValidate="UserName" ValidationExpression="^[a-zA-Z]/w{3,15}$" runat="server" ErrorMessage="用户名格式不正确" ToolTip="用户名格式不正确!">*</asp:RegularExpressionValidator>

    这样就能满足我们在客户端的验证,<asp:RegularExpression>控键很简单,ID和runat就不用多说了,ControlToValidate指的是要验证控件的ID,这里是UserName文本(TextBox)控件,ValidationExpression一看就知道要添上我们的正则表达式了.如果没有输入"*",但为通过验证时会显示ErrorMessage里的内容,当然要预先为显示这些东西留点空间的哦,不然效果会不好的哦.不过我们可以把所有错误的放在ValidationSummary控件中.

      上面只能用于君子中,有些无聊的人不同过你的这些控件直接给你的服务器发信息,这样就可能有麻烦了,不用着急,我们可以在服务端添加一点东西:

 1using System;
 2using System.Web;
 3//一定记住引用此空间.
 4using System.Text.RegularExpressions;
 5
 6namespace NexPlus.Validation{
 7   public partial class Simple : System.Web.UI.UserControl
 8    {
 9      public Simple(){}
10      protected void Submit_Click(object sender, ImageClickEventArgs e)
11        {
12            if (Page.IsValid)
13            {
14              if(!Regex.IsMatch(UserName.Text,@"^[a-zA-Z]/w{5,17}$",RegexOptions.IgnorePatternWhitespace)){
15                    UserName.Focus();
16                    return;
17                }

18                //..
19             }

20           }

21    }

22}
     
    
是不是很Easy!我们有深入的研究过这个东东,如果有什么地方不正确请批评指正,谢谢!   
表单验证的艺术:深入理解前端验证机制 本文将深入探讨前端表单验证的重要性及其在用户体验中的作用。通过对HTML表单、CSS样式表、jQuery脚本的综合应用,展示了如何实现用户ID、日期和电子邮件地址的有效验证。文章详细解析了正则表达式的使用方法以及如何在用户提交表单时进行验证,确保了数据的准确性和安全性。 阅读详情

相关推荐

正则表达式安全漏洞测试工具SDL Regex Fuzzer

免费工具 SDL Regex Fuzzer 用以帮助程序员测试他们的正则表达式是否存在 DoS 漏洞。 正则表达式模式中包含了某些执行起来极其耗时(指数时间)条款,(例如:分组条款中包含重复自身的重复)。这可能导致被攻击者利用发起拒绝服务攻击。SDL Regex Fuzzer是一款微软推出的正则表达式测试工具,可以用来发现这些潜在的漏洞。 SDL Regex Fuzzer支持的操作系统: Windows 7;Windows Server 2003;Windows Server 2008;Windows Server 2008 R2;Windows Vista;Windows XP

写给学生看的系统分析与验证笔记(九)——验证正则安全性(verifying regular safety properties)

之前我们将系统建模为了抽象的模型,并且刻画了相应的性质,现在终于到了模型检测最后一步——验证(verification) 如果我们将真实的系统建模为了TS,并且刻画了线性时间属性Φ\PhiΦ,那么模型检测的任务就是检测TS是否满足Φ\PhiΦ 我们在这里要验证的不是全部的安全性,而是正则安全性(regular safety properties),它是安全性的一个子集,当然我们在定义的时候会使用到一些概念,例如正则表达式什么的,可以翻翻前面的还有计算理论和自动机理论学习笔记 正则安全性 ...

Campsisgrandiflora的博客 1566

从零开始:ENSP与VirtualBox的兼容性迷宫与突围指南

本文深入解析eNSP与VirtualBox的兼容性问题,特别是报错40的解决方案。从诊断根源、彻底卸载残留到推荐黄金版本组合,提供了一套完整的实战指南,帮助网络工程师和技术学习者快速解决AR_Base等设备的启动故障,优化虚拟化环境性能。

weixin_29284885的博客 476

JavaScript高强度密码校验正则表达式包含特殊字符、数字、大、小写字母长度8到18位

需求相关 网站中一般都需要用户注册,然后才能登录网站。可是现在网络安全环境越来越差,密码如果太简单则很有可能被心怀叵测之人利用,进而可能让用户私密信息泄露或者是出现其他安全问题。所以在开发时需要考虑提升密码的安全等级,公司现在进行全体整改,所有项目中的弱口令的密码全部要求修改为安全等级较高的密码,最低要求是密码必须包含大、小写字母,数字,特殊字符,长度为8到18位。 需求实现...

dengyilang123的博客 5302

LeGo-LOAM源码篇:源码分析(3)

mapOptmization.cpp,主要内容包括回环检测、scan-to-map位姿优化、因子图。

slamml 1382

1.47寸ST7789V3彩屏硬件设计与驱动调试指南

TFT LCD是一种基于薄膜晶体管阵列控制像素明暗的主动式显示技术,其核心依赖于专用驱动IC(如ST7789V3)完成时序生成、GRAM管理与伽马校正。该类小尺寸彩色显示屏广泛应用于嵌入式HMI、IoT终端与可穿戴设备,具备高PPI、低功耗和SPI接口易集成等工程优势。理解RGB565数据格式、SPI Mode 0通信时序及关键寄存器(如0x36方向控制、0x3A像素格式、0x2A/0x2B地址窗口)是实现稳定显示的基础;而正确处理电源设计(严禁5V直供)、复位时序与背光PWM调光,则直接决定系统可靠性与能

weixin_30995917的博客 165

正则0.5的倍数

0.5倍数的正则 ^[1-9]\d*\.[5]$|0\.[5]$|^[1-9]\d*$ 0.5倍数校验函数 validtorkNull(key, value, callback) { // let self = this; if (!/^[1-9]\d*\.[5]$|0\.[5]$|^[1-9]\d*$/.test(value)) { ca...

zhangjing1019的博客 3232

Claude Code Skills 入门:内置技能与自定义技能开发

│ Skill 的特点 │1. 封装性:把复杂操作封装成简单命令2. 可复用:一次定义,随处使用3. 可定制:支持参数传入4. 可发现:通过 /skill-name 方式调用打个比方,如果说 Claude Code 的基础工具是「原材料」,那 Skills 就是「预制菜」——只需要简单加热(调用),就能得到成品(结果)。你可以创建自己的 Skill 来封装常用操作。Skill 支持参数,通过。

gaoxiang_120的专栏 671

正则表达式:0.5的倍数——学制管理的例子。

0.5倍数的正则   ^[1-9]\d*\.[5]$|0\.[5]$|^[1-9]\d*$ 0.5倍数校验函数   validtorkNull(key, value, callback) { // let self = this; if (!/^[1-9]\d*\.[5]$|0\.[5]$|^[1-9]\d*$/.test(value)) { ...

海海不掉头发的的博客 1445

阿里九宫格验证码 (Baxia SecCaptcha) 逆向工程与自动化求解

实现对阿里巴夏 (Baxia) 九宫格点击验证码的全自动求解模式说明依赖浏览器模式通过 Puppeteer/Playwright 控制真实浏览器,享有完整 DOM/Canvas/WASM 环境需要 Chrome/Chromium纯算模式脱离浏览器,通过 HTTP API + Node.js WASM 解密完成求解无需浏览器。

猫敷雪 378

ROS机器人未知环境自主探索功能包explore_lite最全源码详细解析(二)

本系列文章主要针对ROS机器人常使用的未知环境自主探索功能包explore_lite展开全源码的详细解析,并进行概括总结。 本系列文章共包含六篇文章,前五篇文章主要介绍explore_lite功能包中 explore.cpp、costmap_tools.h、frontier_search.cpp、costmap_client.cpp等源码实现文件中全部函数的详细介绍,第六篇文章进行概括总结,包含自主探索功能包explore_lite的简介,实现未知环境自主探索功能的原理及流程总结,效果演示,使用功能包exp

慕羽★的博客 1648

JavaScript表单验证【正则表达式RegExp】

介绍了javascript中的表单验证【邮箱、密码、数值...】,以及正则表达式的基本概念,这些东西仅仅是基础,欢迎大家阅读,欢迎大家指正。^_^

一个非常Cool的人 1031

深度剖析:Spring AI 与 LangChain4j,谁才是 Java 程序员的 AI 开发利器?

首先介绍 AI 时代 Java 开发框架选择背景,接着对比两者功能特性(Spring AI 的生态集成与标准化设计、LangChain4j 的多模型适配与提示工程)、应用场景(企业级系统改造与创新产品开发)、开发体验(学习成本与调试工具)、生态扩展(Spring 商业支持与 LangChain4j 开源社区)、性能安全(企业级优化与自主安全实现)及成本趋势(短期投入、长期回报与技术演进),最后给出选型建议与混合架构方案。

博客 5445

22 JavaScript学习:表单验证

JavaScript 表单验证是一种常用的前端技术,可以通过编写 JavaScript 脚本来对用户在表单中输入的数据进行验证,确保其格式和内容符合要求。但需要注意,前端验证只能作为一种辅助手段,真正的数据验证应该在后端进行,以确保数据的安全性和可靠性。其原理是在用户提交表单时,触发 JavaScript 函数进行对用户输入数据的验证,以确保其格式和内容符合预期。HTML5引入了一些新的表单输入类型和属性,可以在不编写JavaScript的情况下自动验证用户输入。最好根据具体需求和业务场景进行调整和优化。

百锦再的博客 9万+

【误码率仿真】基于matlab 小波变换OFDM误码率仿真

其中,与传统的 OFDM 相比,小波变换 OFDM 在进行调制和解调时,使用的是小波变换函数。需要注意的是,由于小波变换函数将频域信号转换为时域信号,因此与传统 OFDM 不同,小波变换 OFDM 中的信号需要在时域上添加循环前缀。与传统的 OFDM 不同,小波变换 OFDM 使用小波函数作为基函数,而非正弦函数作为基函数,因此可以在保持子载波正交性的同时,让子载波之间的带宽变得更加均匀。在频域进行信号加权,然后进行小波逆变换,得到时域信号。在接收端进行信号接收,去掉循环前缀并进行小波变换得到频域信号。

Fanjufei的博客 662

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

表单验证

表单验证 <html> <meta charset="utf-8"> <center> <h3>后台登陆</h3> <form action= "" method="POST" > 账号: <input type="text" name="username"/><br/> 密码: <input t...

希望我的博客,能帮上你解决学习中工作中所遇到的问题 252

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

html学习——表单的简单验证

为什么要对表单进行验证? 识别错误请求,减轻服务器压力 保证数据安全性(?) (保证安全这里没有看懂,有无大佬可以在评论区解释一下) 常用方式 placeholder :提示语,文本框未输入时显示提示语,输入任何字符后不显示 <form> <p> <input type="text" name="username" placeholder="请输入用户名"> </p> </form> required:非空判断,元素不能为空,该文

greedyguttler的博客 373

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

HTML5 学习17.表单的初级验证

表单初级验证 为什么要进行表单验证? 为了减轻服务器压力 保证数据安全性 常用方式 placeholder:输入框中提示信息 required:元素不能为空 pattern:正则表达式

zangzangJuxy的博客 173

HTML15:表单初级验证

为什么要进行表单验证? 减轻服务器的压力 保证数据安全性 常用方式 有三种:placeholder、required、pattern placeholder 提示消息 (输入框可用) 名字: <input type="text" name="username" placeholder="请输入用户名"/> required 非空校验 名字: <input type="text" name="username" required/>

搬运工 479

HTML18:表单初级验证

HTML18:表单初级验证 表单初级验证 思考?为什么要进行表单验证 减轻服务器压力 保证数据安全性 常用方式 placeholder 提示信息 required 非空判断 pattern 正则表达式 代码show <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>10.表单</title&gt

工一木子 203

移动应用数据安全性:如何防止应用程序被黑客攻击和数据泄露?

本文通过介绍常见的移动应用安全威胁,提供了一些有效的安全开发实践,并提供了相应的技术案例和示例代码。通过遵循这些实践和采取相应的安全措施,开发人员可以大大提高移动应用程序的数据安全性,保护用户的个人信息不被黑客攻击和数据泄露所威胁。本文将探讨移动应用数据安全性的重要性,并提供一些有效的技术措施来防止应用程序被黑客攻击和数据泄露。安全认证:采用安全的用户认证机制,例如使用双因素身份验证,以防止未经授权的访问。安全存储:敏感数据应该存储在安全的位置,例如加密的数据库或安全的云存储服务。

baidu_38876334的博客 1972

js 常用的正则验证

1.用户名正则 //用户名正则,4到16位(字母,数字,下划线,减号) var uPattern = /^[a-zA-Z0-9_-]{4,16}$/; 2.密码强度正则 //密码强度正则,最少6位,包括至少1个大写字母,1个小写字母,1个数字,1个特殊字符 var pPattern = /^.*(?=.{6,})(?=.*d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$/; 3.Email正则 var ePattern = /^([A-Za-z0-9_-

weixin_45527865的博客 402

正则表达式验证

console.log('格式错误,不能为纯数字和纯字母');可以为纯文字,文字加数字,文字加字母加数字,文字加字母。不能为纯字母、数字组合,不超 10 位,无特殊字符,

weixin_69967063的博客 163

常用正则表达式汇总

平时做网站经常要用正则表达式,下面是一些讲解和例子,仅供大家参考和修改使用: “^\d+$”  //非负整数(正整数 + 0) “^[0-9][1-9][0-9]$”  //正整数 “^((-\d+)|(0+))$”  //非正整数(负整数 + 0) “^-[0-9][1-9][0-9]$”  //负整数 “^-?\d+$”    //整数 “^\d+(.\d+)?$”  //非负浮点数

空白_回忆的博客 432
上一篇: ASP.NET 常用函数表
下一篇: ASP.NET 网站路径
alys
博客等级 码龄23年 0粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值