如何验证某个 string 是否为合法的 GUID ?

咨询区

  • 001

假如有一个string字符串,请问如何判断它是合法的GUID还是一个普通的数字型字符串, 是否可以用包含 字母 进行区分?

回答区

  • Can Gencer

判断是否有 字母 的方式是不靠谱的,比如说:FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF 它是一个有效的 GUID,而 00000000-0000-0000-0000-000000000000 也是一个有效的GUID。

其实可以通过 Guid.Parse 或者 Guid.TryParse 来强制转换,参考如下代码:

public static class GuidEx
{public static bool IsGuid(string value){Guid x;return Guid.TryParse(value, out x);}
}

然后像下面这样使用。

string testMe = "not a guid";
if (GuidEx.IsGuid(testMe))
{
...
}

如果你用的是 .NET 4.0 之前的版本,可以用 构造函数 的方式进行判断,比如下面这样:

public static bool TryParseGuid(string guidString, out Guid guid)
{if (guidString == null) throw new ArgumentNullException("guidString");try{guid = new Guid(guidString);return true;}catch (FormatException){guid = default(Guid);return false;}
}
  • tofutim

GUID 是一个 16byte 长度的数字,但通常都是用 32 个16进制字符表示,所以你看到的 GUID 不一定包含字母,只不过那么大一串你大概率会遇到而已。

换句话说,比如你的 GUID 是16进制表示的,那你可以简单的判断这个string的length是否为32差不多就可以了,如果严谨一点的话,可以使用正则。

public static bool IsGUID(string expression)
{if (expression != null){Regex guidRegEx = new Regex(@"^(\{{0,1}([0-9a-fA-F]){8}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){12}\}{0,1})$");return guidRegEx.IsMatch(expression);}return false;
}

点评区

判断一个string是否为合法的 GUID,居然有四种方法,挺好,学习了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/296094.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JS:1.3,函数(function)

ylbtech-JS:函数-导航函数定义返回函数调用一个函数调用一个函数(带参数)返回值的函数调用外部的js文件JS:3.1,函数(function)-定义 返回顶部1,定义函数语法 通过定义函数名称,参数和代码语句来创建函数。function 函数…

美女,你这是把腰带当裙子了?

1 你这是把腰带当裙子了?(良心建议:穿这裙子一定要专心...)▼2 真正充满味道的食堂!▼3 ???这又是一只有故事的猫▼4 女生的肚子可以多神奇?(dy&#xff…

UITableView定制accessoryView出现的连带问题

为了美化UI,想实现如下图的效果:点击高亮 出发点是好的。没想到,出现了下图的连带问题:选择一行的时候,竟然连带的出现了高亮效果 这个如何是好?经过网络搜索,发现我不是第一个遇到这样的问题:custom-accessory-button…

java面试笔试大汇总

http://java.chinaitlab.com/base/724898.html 1.抽象:  抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括…

判断三点是顺时针还是逆时针方向

判断三点是顺时针还是逆时针方向设 p1(x1,y1), p2(x2,y2), p3(x3,y3) 求向量 p12(x2-x1,y2-y1) p23(x3-x2,y3-y2) 则当 p12 与 p23 的叉乘(向量积) p12 x p23 (x2-x1)*(y3-y2)-(y2-y1)*(x3-x2) 为正时,p1-p2-p3 路径的…

linux编写arm执行文件夹,嵌入式ARM-Linux平台上的编译、配置和运行使用

本文介绍了嵌入式ARM-Linux上的常用应用程序wpa_supplicant(以及wpa_supplicant依赖的libnl和openssl)的编译、配置和运行使用,iw、hostapd等应用的编译和使用。wpa_supplicant 编译和配置运行从https://w1.fi/wpa_supplicant/ (git地址git://w1.fi/hostap.git)下载…

Asp.NET Core 如何使用ElasticSearch和Kibana创建仪表板

图片在我以前的文章(这里是第一[1]篇和第二篇[2])中,我展示了ElasticSearch作为电子商务中的全文搜索引擎的使用,一些高级配置的设置和使用以及products包含所有内容的索引的创建保存的产品。出于演示目的,我们使用Bog…

男女共厕,考验男生心理素质的时候到了......

1 假期里你都干了啥?▼2 有猫饼▼3 奥特曼:我不会错过!▼4 自绝式单身▼5 我信了▼6 意外的惊喜▼7 画面太美我不敢看▼你点的每个赞,我都认真当成了喜欢

springmvc和encache集成关键代码和总结

基于注解的spring缓存配置 了解更多与spring集成的Echache 还有分布式的mencache让我更好学习了oscache 介绍二者集成之前,先介绍下GoogleCode上的ehcache-spring-annotations项目 /*** ehcache-spring-annotations简介* see -----------------------------------…

正则表达式||grep的使用

在编写程序时,或者编写网页时,在处理一些不固定的字符时,我们通常会使用形如:. * ?等字符,而我们就把这称作是正则表达式,尤其是我们在浏览一些网站进行用户注册时,通常会见到对我们的帐号、密…

基于MySQL的高可用可扩展架构探讨

随着信息量飞涨,信息的存储成为了这个时代至关重要的一项技术。如何来保证数据存储技术能够适应信息量的增长速度和我们对信息的高度依赖,成为一个非常重要的课题。本文将从数据库架构的层面,通过以开源的数据存储软件来构建分布式数据层的思…

linux 测试程序性能,推荐一款Linux系统的性能测试软件

bitcnts是mibench众多测试软件中的一个,但足够测试CPU的性能.如果需要全部测试软件,请从密西根大学网站上下载:http://www.eecs.umich.edu/mibench/下面贴上SEP4020Linux2.6上跑1000000位测试时间测试环境CPU88MHz 开LCD NFS网络文件系统/mibench/bitcou…

使用chpasswd命令批量修改系统用户密码

chpasswd命令工作原理&#xff1a;从系统的标准输入读入用户的名称和口令&#xff0c;并利用这些信息来更新系统上已存在的用户的口令&#xff01;语法&#xff1a;1&#xff1a;# echo 用户名:密码 | chpasswd2&#xff1a;# chpasswd < doiido.txt相关参数&#xff1a;-e …

有趣分享:国内产业图谱

IT有趣分享”Microsoft 市值又重新登上全球第一当地时间21年10月29号周五美股收盘微软市值重新登上全球第一&#xff0c;约为2.46万亿美元&#xff0c;超越苹果2.43万亿美元&#xff0c;成为全球市值第一公司。相当于深圳21年前三季度的gdp的总和的两倍。有趣的是专门有人做了公…

性冷淡风的麻将,获红点奖!网友:没有烟火气了

全世界只有3.14 % 的人关注了爆炸吧知识在这个消费升级的时代很多产品都被重新设计着最近&#xff0c;一款麻将引发大家热议有人说惊艳也有人说太冰冷&#xff0c;没了烟火气设计者是THE 90s LAB台湾的一个90后团队这副麻将的名字很洋气叫做&#xff0c;马丘Machill读起来&…

springmvc使用和经验总结(长沙师说网络科技有限公司)

springmvc 先分析下代码&#xff0c;快速学习&#xff0c;先要把配置文件写好&#xff0c; 给上2个类具体看看 package com.shishuo.studio.action;import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframe…

MySQL使用裸设备

1.名词注释&#xff1a;a.裸设备&#xff1a;是一种没有经过格式化&#xff0c;不被Unix/Linux通过文件系统来读取的特殊类型的块设备文件&#xff0c;允许以直接访问硬盘的方式访问一个存储设备&#xff0c;而不经过操作系统的高速缓存和缓冲器。裸设备可以绑定一个分区&#…

c语言md5函数 linux,Linux下C语言计算文件的md5值(长度32)

google了好久都没有找到合适的&#xff0c;其实我只需要一个函数&#xff0c;能计算文件的 md5 值就好&#xff0c;后来找到了 md5.h 和 md5.c 的源文件&#xff0c;仿照别人的封装了个函数(他那个有问题&#xff0c;和 md5sum 计算出来的都不一样)。废话少说&#xff0c;直接贴…

图片的旋转

主要运用了Matrix类&#xff0c;postRotate()方法和postScale()方法&#xff1b; Matrix&#xff1a;中文是矩阵的意思&#xff0c;主要用于图片的缩放&#xff0c;平移与旋转&#xff1b; postRotate()用于旋转&#xff0c;postScale()用于缩放&#xff1b; 具体MianAvtivity代…

让 AI 为你写代码 - 体验 Github Copilot

前几天在群里看到有大神分享 Copoilot AI 写代码&#xff0c;看了几个截图有点不敢相信自己的眼睛。今天赶紧自己也来体验一下 Copoilot AI 写代码到底有多神奇。申请 现在 Copoilot 还处在预览阶段&#xff0c;想要体验需要先申请。等待大概一晚会收到邮件提示申请试用成功&am…