基于golang的手机号格式验证和邮箱格式验证(正则表达式)

Go语言的正则表达式 本文介绍了Go语言中的正则表达式,包括其基础语法、核心功能以及一些常见的应用场景。正则表达式作为一种高效的字符串处理工具,在很多领域,比如数据清洗、文本解析、输入验证等方面都展现出了其强大的能力。希望通过这篇文章,读者能对Go语言的正则表达式有更深入的理解,并能在实际开发中灵活运用。通过不断地练习和思考,掌握正则表达式的使用,将为解决各种文本处理问题提供巨大的便利。 阅读详情

废话不多说,直接上代码

//email verify
func VerifyEmailFormat(email string) bool {
	//pattern := `\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*` //匹配电子邮箱
	pattern := `^[0-9a-z][_.0-9a-z-]{0,31}@([0-9a-z][0-9a-z-]{0,30}[0-9a-z]\.){1,4}[a-z]{2,4}$`

	reg := regexp.MustCompile(pattern)
	return reg.MatchString(email)
}
//mobile verify
func VerifyMobileFormat(mobileNum string) bool {
	regular := "^((13[0-9])|(14[5,7])|(15[0-3,5-9])|(17[0,3,5-8])|(18[0-9])|166|198|199|(147))\\d{8}$"

	reg := regexp.MustCompile(regular)
	return reg.MatchString(mobileNum)
}
正则表达式:http://www.runoob.com/regexp/regexp-syntax.html
知识扩展:

正则引擎主要可以分为两大类:一种是DFA,一种是NFA。这两种引擎都有了很久的历史(至今二十多年),当中也由这两种引擎产生了很多变体!于是POSIX的出台规避了不必要变体的继续产生。这样一来,主流的正则引擎又分为3类:一、DFA,二、传统型NFA,三、POSIX NFA。

常用正则表达式
用户名:  	/^[a-z0-9_-]{3,16}$/
密码:	    /^[a-z0-9_-]{6,18}$/
十六进制值:	/^#?([a-f0-9]{6}|[a-f0-9]{3})$/
电子邮箱	:  /^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/
		    /^[a-z\d]+(\.[a-z\d]+)*@([\da-z](-[\da-z])?)+(\.{1,2}[a-z]+)+$/
URL: 	    /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/
IP 地址:	/((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)/
            /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/
HTML 标签:	/^<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)$/

删除代码\\注释:      	(?<!http:|\S)//.*$
Unicode编码中的汉字范围:	/^[\u2E80-\u9FFF]+$/
使用Go语言实现邮箱格式验证的正则表达式函数 通过使用正则表达式,我们可以轻松地检查字符串是否符合特定的模式,从而提高代码的健壮性和可靠性。的函数,该函数接受一个字符串参数,表示要验证的邮箱地址。通过上述代码,我们可以验证邮箱地址的格式是否有效。如果邮箱地址符合正则表达式模式,那么它将被认为是有效的。正则表达式是一种强大的工具,它可以用来匹配和验证字符串的模式。在本文中,我们将学习如何使用Go语言中的正则表达式函数来实现邮箱格式验证。接下来,我们可以使用上述函数来验证邮箱地址的格式。的变量,并将其设置为要验证的邮箱地址。接下来,我们可以定义一个名为。 阅读详情

相关推荐

用于电子邮件验证的Golang软件包-Golang开发

用于电子邮件验证的checkmail Golang软件包。 格式(简单的正则表达式,请参见:https://www.w3.org/TR/html5/forms.html#valid-e-mail-address和https://davidcel.is/posts/stop-validating-email-addresses -with-regex /)有效的域checkmail Golang软件包,用于电子邮件验证。 格式(简单的正则表达式,请参阅:https://www.w3.org/TR/html5/forms.html#valid-e-mail-address和https://davidcel.is/posts/stop-validating-email-addresses -with-regex /)有效域有效用户:验证用户和邮箱是否确实存在用法1.格式化func main(){err:= checkmail.ValidateFormat(“ç$€§/ [email protected]”)if err! = nil {fmt.Println(err)}}输出:格式无效2。域

【后端学习笔记·Golang】邮箱邮件验证

邮箱验证码登陆的简单示例

记录学习,感悟体会。 1328

golang库,用于基于smtp的电子邮件验证-Golang开发

mailck-用于电子邮件验证的SMTP邮件验证golang库此库可让您检查电子邮件地址是否确实有效:语法检查一次性邮件服务器的黑名单(例如mailinator.com)SMTP mailb mailck-用于电子邮件验证的SMTP邮件验证golang库允许您检查电子邮件地址是否确实有效:语法检查一次性邮件服务器的黑名单(例如mailinator.com)SMTP邮箱检查前提条件确保您从中呼叫的IP地址未列入黑名单。 例如,如果ip是动态IP,就是这种情况。 还要确保您的IP地址具有正确的反向dns查找,与您的地址的主机名匹配。 交替

Go语言中对输入做正则表达式验证

常见的一些正则表达式备忘

深度学习领域优质创作者,优快云博客专家 796

Go-Checkmail-Golang简单库用于校验电子邮件

Checkmail - Golang 简单库用于校验电子邮件

Go-mailck-golang库用于实现基于smtp的email校验

mailck - golang库用于实现基于smtp的email校验

【后端学习笔记·Golang】手机短信验证

手机号验证码登陆的简单示例

记录学习,感悟体会。 1771

ArcGIS:根据DEM数据提取区域水系

利用DEM数据提取区域水系是常见的水文分析应用,为了获取区域的矢量水系数据,我们可以通过ArcGIS对高程DEM数据进行水文分析,为地表水流建立模型,进而获取到该地的水系数据,DEM数据精度越高,获取到的水系数据精度也就越高。以下介绍如何用ArcGIS提供的工具提取水系。

Oruizn的博客 9110

邮箱正则表达式验证_go语言验证电子邮件地址是否合法

在用户提交邮箱地址以后我们需要验证用户邮箱地址是否合法,解决方案的范围很广,可以通过使用正则表达式来检查电子邮件地址的格式是否正确,甚至可以通过尝试与远程服务器进行交互来解决问题。两者之间也有一些中间立场,例如检查顶级域是否具有有效的MX记录以及检测临时电子邮件地址。一种确定的方法是向该地址发送电子邮件,并让用户单击链接进行确认。但是在发送文章之前我们需要对用户的邮箱进行预定义检测。参考:go语言...

weixin_39538500的博客 3235

【Aseprite】制作Unity2D瓦片地图素材(平台游戏)

本文章用于记录用Aseprite软件制作2D平台游戏的瓦片地图的方法。

凡心所向,素履以往 5546

DDR4协议规范之(一)DDR4结构和寻址

DDR4 SDRAM结构和寻址DDR4 SDRAM的封装和寻址新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 DDR4 SDRAM的封装和寻址 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习

YJFeiii的博客 3万+

Go语言正则表达式实战:用户名、密码、QQ、手机号、邮箱格式校验大全

本文介绍了如何使用Go语言的正则表达式实现常见数据格式的验证,包括用户名、密码、QQ号、手机号和邮箱。通过预编译正则表达式和分层验证策略,优化性能并确保安全性。文章详细解析了各种验证规则的正则表达式,提供了完整的验证工具类实现,并分享了测试用例、应用场景和最佳实践建议。该方案适用于电商、社交、金融等领域,能有效保障数据安全性和格式规范性,同时通过模块化设计便于维护和扩展。

Java程序员_编程开发学习笔记_网站安全运维教程_渗透技术教程 877

UNet 改进(22):结合Transformer结构

保留了UNet的经典编码器-解码器结构在瓶颈层使用Transformer替代传统的卷积层采用跳跃连接保持空间细节信息使用双卷积块(DoubleConv)作为基础构建模块。

2401_82355416的博客 774

Go语言正则表达式实战:高效校验用户名、QQ、手机号和邮箱格式

【摘要】本文详细介绍了使用Go语言正则表达式高效校验用户名、QQ、手机号和邮箱格式的方法。通过预编译正则表达式(如^\d{5,11}$校验QQ号)提升40倍性能,并解析了各校验规则的设计原理。文章包含完整工具类实现、单元测试用例及性能对比数据,展示了在Web表单验证和数据清洗中的实际应用。同时提供了正则优化技巧(如非贪婪匹配)、常见陷阱避免和ReDoS安全防护建议,帮助开发者构建高效可靠的格式校验系统。

Java程序员_编程开发学习笔记_网站安全运维教程_渗透技术教程 1009

指纹对抗指南:如何绕过Cloudflare与Akamai的5s盾与浏览器指纹检测

现在的CDN反爬技术虽然越来越强,但是道高一尺魔高一丈,只要掌握了指纹伪造、流量伪装、行为模拟这些核心技术,就可以绕过绝大多数的防护措施。对抗过程中要注意效率和成本的平衡,小规模爬取用Playwright+stealth最方便,大规模爬取用curl_cffi+代理池性价比最高,遇到验证码用打码平台或者自动识别服务,不需要死磕破解。本文介绍的方案已经在实战中验证过,可以绕过95%以上的Cloudflare/Akamai防护,成功率非常高。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 299

PCL:实现 PPF估计(附完整源码)

PCL:实现 PPF估计(附完整源码)

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

Go语言常用数据格式校验工具:高效验证QQ、手机、邮箱、用户名和密码

本文介绍了一套高效的Go语言数据格式校验工具,可验证QQ号(5-11位数字)、手机号(11位1开头)、邮箱、用户名(5-20位字符)和密码。密码校验特别严格,包含长度检测、字符组合要求、弱密码过滤等功能,并提供详细的错误提示。所有正则表达式采用预编译优化,工具可直接集成到注册、登录等系统中,兼具安全性和用户体验。代码结构清晰,适用于多种场景,包括用户注册、数据清洗等。

Java程序员_编程开发学习笔记_网站安全运维教程_渗透技术教程 411

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Layui官方js正则验证手机号,邮箱,网址,日期,身份证

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.youkuaiyun.com/meimeieee/article/details/80757469 Layui官方js正则验证手机号,邮箱,网址,日期,身份证。从官方js里挖出来的,正则表达式,赶紧收藏。 js正则验证手机号:/^1\d{10}$/ js正则验证邮箱:/...

weixin_45225432的博客 1047

计算机控制技术及应用

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

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

手机号/邮箱/身份证验证

// 手机号验证 checkPhone: function (phone) { let reg = /^1[34578]\d{9}KaTeX parse error: Expected 'EOF', got '}' at position 52: …le.log(111) } }̲, //邮箱验证 var my…/; //身份证验证 var regIdCard = /([1-9]\d{7}((0...

HXH_csdn的博客 844

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

简单的手机邮箱验证

/** * 验证输入的邮箱格式是否合法 * @access public * @param string mobilephone∗需要验证的邮箱格式∗@returnbool∗/functionisemail(mobile_phone * 需要验证的邮箱格式 * @return bool */ function is_email(mobilep​hone∗需要验证的邮...

weixin_43023551的博客 1023

vue element组件 表单姓名、手机号、邮箱正则验证

<template> <div> <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm"> <el-form-item label="你的姓名" prop="uname"> <el-input ...

D_evin_的博客 3588

正则表达式:邮箱,手机号,c语言变量规则等等

原作者:70KG 转自:原文连接 同时转自:基于golang的手机号格式验证和邮箱格式验证(正则表达式) 一,正则表达式 1.由数字、26个英文字母或者下划线组成的字符串: ^[0-9a-zA-Z_]{1,}$ 2.非负整数(正整数 + 0 ): ^/d+$ 3,正整数: ^[0-9]*[1-9][0-9]*$ 4.非正整数(负整数 + 0): ^((-/d+)|(0+))$ 5, ...

weixin_44014654的博客 1388

正则表达式及 Golang 中的应用

在现代软件开发中,文本处理是一项核心任务,而正则表达式(Regular Expression,简称 Regex)则是处理文本的瑞士军刀。其通过一种简洁的语法定义字符串的匹配模式,能够高效地完成复杂的文本检索、验证、替换和提取操作。正则表达式的应用场景几乎涵盖了所有需要处理文本的领域:Go语言亦内置了正则表达式支持,在其标准库包基于 RE2 引擎实现,保证了线性时间复杂度和线程安全性,非常适合在高性能应用中使用。正则表达式是由普通字符和元字符组成的字符串模式,用于描述一类字符串的特征。当我们使用正则表达式匹配

jiajixi的博客 910
上一篇: Golang 求字符串长度之坑
下一篇: golang float64,in64相互转换精度控制
dingCode
博客等级 码龄8年 16粉丝 11原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值