You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript如何将distinguished name(DN)转换为对应域名?

原有代码问题说明

  • 存在两个逻辑错误导致结果不符合预期:
    1. 循环中每次都将element直接赋值为当前分段的分割结果,完全覆盖了之前的取值,最终仅能保留DN最后一个分段的内容
    2. 没有对分段的键做过滤,没有仅提取DC字段对应的值

单DN转换代码实现

const dn = 'CN=Dan Adam,OU=testUsers,DC=KALK,DC=DTC'
const dcValues = []
const parts = dn.split(',')
for (let i = 0; i < parts.length; i++) {
  const [key, value] = parts[i].trim().split('=')
  if (key === 'DC') {
    dcValues.push(value)
  }
}
const domain = dcValues.join('.')
console.log(domain) // 输出:KALK.DTC

DN数组批量转换方案

可以封装转换逻辑为公用函数,再调用数组的map方法批量处理即可:

// 封装单DN转域名的公用函数
function dnToDomain(dn) {
  const dcValues = []
  const parts = dn.split(',')
  for (let i = 0; i < parts.length; i++) {
    const [key, value] = parts[i].trim().split('=')
    if (key === 'DC') {
      dcValues.push(value)
    }
  }
  return dcValues.join('.')
}

// 示例DN数组
const dnArr = [
  'CN=Dan Adam,OU=testUsers,DC=KALK,DC=DTC',
  'CN=Jack,OU=admin,DC=example,DC=com,DC=cn',
  'CN=Lisa,OU=dev,DC=google,DC=com'
]
// 批量转换得到域名数组
const domainArr = dnArr.map(dn => dnToDomain(dn))
console.log(domainArr) // 输出:['KALK.DTC', 'example.com.cn', 'google.com']

内容的提问来源于stack exchange,提问作者ddark13

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 07:21:02