有没有办法解析出计算机名

我有一些代码,但我发现它可以在 90% 的计算机上运行。这是专有名称: CN=2016-10-05T12:19:16-05:00{393DA5A5-4EEF-4394-90F7-CBD0D2F20CC9},CN= Computer01-T2 ,OU=Product,OU=Workstations,OU=KDUYA, DC=时间,DC=本地


我要做的是仅解析 ComputerName。我们使用的 27 个 OU 中的 3 个使用 3 个字母的名称,而不是所有其他站点使用的 5 个。我一直在用头撞墙,寻求帮助和/或指导。观看一些关于正则表达式的视频了解基础知识,但仍在处理像这样更复杂的事情。


这是我所拥有的。任何建议或帮助将不胜感激。


let str = "CN=2016-10-05T12:19:16-05:00{393DA5A5-4EEF-4394-90F7-CBD0D2F20CC9},CN=Computer01-T2,OU=Product,OU=Workstations,OU=KDUYA,DC=time,DC=local";

str = str.substring(70, str.length -53);

console.log(str);+


沧海一幻觉
浏览 117回答 2
2回答

摇曳的蔷薇

我会使用正则表达式:let str = "CN=2016-10-05T12:19:16-05:00{393DA5A5-4EEF-4394-90F7-CBD0D2F20CC9},CN=Computer01-T2,OU=Product,OU=Workstations,OU=KDUYA,DC=time,DC=local";let myRegexp = /^[^,]+,CN=([^,]+)/;let match = myRegexp.exec(str);console.log(match[1]); // Computer01-T2/ ^[^,]+,CN=([^,]+)/ 部分表示从字符串开头开始寻找匹配项" start here|CN=2016-10-05T12:19:16-05:00{393DA5A5-4EEF-4394-90F7-CBD0D2F20CC9},CN=Computer01-T2,OU=Product,OU=Workstations,OU=KDUYA,DC=time, DC=本地”/^ [^,]+,CN=([^,]+)/ 部分表示匹配除逗号以外的任何字符" CN=2016-10-05T12:19:16-05:00{393DA5A5-4EEF-4394-90F7-CBD0D2F20CC9},CN=Computer01-T2,OU=Product,OU=Workstations,OU=KDUYA,DC=time, DC=本地”/^[^,] +,CN=([^,]+)/ 部分意味着匹配尽可能多的非逗号,在这种情况下,尽可能多地匹配一行中的字符。“ CN=2016-10-05T12:19:16-05:00{393DA5A5-4EEF-4394-90F7-CBD0D2F20CC9},CN=Computer01-T2,OU=Product,OU=Workstations,OU=KDUYA,DC=time,DC=local”/^[^,]+ ,CN=([^,]+)/ 部分表示精确匹配一个字符串:,CN=“ CN=2016-10-05T12:19:16-05:00{393DA5A5-4EEF-4394-90F7-CBD0D2F20CC9},CN=Computer01-T2,OU=Product,OU=Workstations,OU=KDUYA,DC=time,DC=local”/^[^,]+,CN= ([^,]+ )/ 括号表示存储字符串的匹配部分,以便我们可以获得它的值,也就是“匹配组”,并且会包含计算机名称部分在这种情况下的字符串。/^[^,]+,CN=( [^,]+)/ 部分意味着尽可能多地匹配一行中的非逗号字符。“ CN=2016-10-05T12:19:16-05:00{393DA5A5-4EEF-4394-90F7-CBD0D2F20CC9},CN=Computer01-T2,OU=产品,OU=工作站,OU=KDUYA,DC=时间,DC=本地”正如您从帖子的评论中看到的那样,您可以通过多种不同的方式构建正则表达式。我更喜欢将我的匹配锚定到我正在解析的字符串的开头,也就是 / ^[^,]+,CN=([^,]+)/ 部分。regex101 网站是试验和学习正则表达式的好地方。此链接使用您的示例字符串和我在此答案中使用的正则表达式预填充该站点: https: //regex101.com/r/wM8ejj/1/

慕虎7371278

使用您提供的字符串,您可以使用此代码段let str = "CN=2016-10-05T12:19:16-05:00{393DA5A5-4EEF-4394-90F7-CBD0D2F20CC9},CN=Computer01-T2,OU=Product,OU=Workstations,OU=KDUYA,DC=time,DC=local";let cName = str.split(',').find(e => e.indexOf('Computer') != -1).split('=')[1];console.log(cName);这假设您所有的计算机名称都将包含关键字Computer。您可以根据需要修改代码段。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript