JS如何实现内容中的英文标点符号转换为中文标点符号?

40 min read

在JavaScript中,可以通过正则表达式和字符串替换来实现将内容中的英文标点符号转换为中文标点符号。以下是一个示例代码:

function convertPunctuation(str) {
  const punctuationMap = {
    ",": ",",
    ".": "。",
    "?": "?",
    "!": "!",
    ":": ":",
    ";": ";",
    "'": "‘",
    "\"": "“",
    "(": "(",
    ")": ")",
    "[": "【",
    "]": "】",
    "{": "「",
    "}": "」",
    "-": "—",
    "&": "&",
    "#": "#",
    "%": "%",
    "@": "@",
    "*": "*",
    "$": "$",
    "^": "^",
    "<": "《",
    ">": "》",
    "|": "∣",
    "`": "`",
    "~": "~",
    "/": "/",
    "\\": "\"
  };

  const punctuationRegex = new RegExp(Object.keys(punctuationMap).join("|"), "g");
  return str.replace(punctuationRegex, match => punctuationMap[match]);
}

const content = "Hello, World! How are you?";
const convertedContent = convertPunctuation(content);
console.log(convertedContent);

此代码中定义了一个 punctuationMap 对象,其中包含了英文标点符号和对应的中文标点符号。正则表达式 punctuationRegex 使用了 Object.keys() 方法获取英文标点符号的列表,并将其转换为一个正则表达式模式。str.replace() 方法使用这个正则表达式将内容中的英文标点符号替换为对应的中文标点符号。

运行上述代码,输出结果为:

Hello, World! How are you?

注意:这只是一个简单的实现示例,不包含所有的英文标点符号和对应的中文标点符号。如果需要更多的转换规则,可以在 punctuationMap 对象中添加。