亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

有沒有辦法解析出計算機名

有沒有辦法解析出計算機名

滄海一幻覺 2023-03-24 15:24:12
我有一些代碼,但我發現它可以在 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);+
查看完整描述

2 回答

?
搖曳的薔薇

TA貢獻1793條經驗 獲得超6個贊

我會使用正則表達式:


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/


查看完整回答
反對 回復 2023-03-24
?
慕虎7371278

TA貢獻1802條經驗 獲得超4個贊

使用您提供的字符串,您可以使用此代碼段


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。您可以根據需要修改代碼段。


查看完整回答
反對 回復 2023-03-24
  • 2 回答
  • 0 關注
  • 108 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號