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

如何对Ms、Cik等7种称谓实现JavaScript链式Replace替换?

Efficiently Replace All 7 Honorifics in JavaScript

Got it, let's refine your code to handle all 7 target honorifics (Ms, Cik, Mr, Encik, Puan, Mdm, Mrs) cleanly instead of chaining individual replace calls. Here's a more efficient approach:

Step 1: Use a Regular Expression for Batch Replacement

Instead of repeating .replace() for each honorific, we can build a regex pattern that matches all of them at once. Adding word boundaries (\b) ensures we only match full honorific words—this prevents accidental partial matches (like catching "Ms" inside "Mrs" if we didn’t use boundaries).

Updated JavaScript Code

$("h1").each(function() {
  // Regex pattern targeting all 7 honorifics, with word boundaries to match full words
  const honorificsRegex = /\b(Ms|Cik|Mr|Encik|Puan|Mdm|Mrs)\b/g;
  $(this).html($(this).html().replace(honorificsRegex, ''));
});

How It Works

  • The regex \b(Ms|Cik|Mr|Encik|Puan|Mdm|Mrs)\b locks onto each exact honorific word. The \b markers ensure we don’t accidentally modify parts of longer words.
  • The g (global) flag ensures all instances of the honorifics in an <h1> are removed (useful if there’s ever multiple honorifics in one tag, though unlikely here).
  • If you need to handle case variations (like "MS" or "mr"), add the i (case-insensitive) flag: /\b(Ms|Cik|Mr|Encik|Puan|Mdm|Mrs)\b/gi

Test with Your HTML Example

Given your sample HTML:

<h1>Dr Phillips</h1>
<h1>Ms Peter</h1>
<h1>Mr Robert</h1>
<h1>Prof Thomas</h1>
<h1>Mdm Khoo</h1>
<h1>Encik Ahmad</h1>
<h1>Puan Fatimah</h1>
<h1>Mrs Smith</h1>

After running the code, the output will be:

  • <h1>Dr Phillips</h1> (unchanged)
  • <h1> Peter</h1> (Ms removed)
  • <h1> Robert</h1> (Mr removed)
  • <h1>Prof Thomas</h1> (unchanged)
  • <h1> Khoo</h1> (Mdm removed)
  • <h1> Ahmad</h1> (Encik removed)
  • <h1> Fatimah</h1> (Puan removed)
  • <h1> Smith</h1> (Mrs removed)

Bonus tip: If you want to eliminate the extra space left after deleting the honorific, adjust the regex to include the trailing space: /\b(Ms|Cik|Mr|Encik|Puan|Mdm|Mrs)\s+/g—this removes both the honorific and any following space in one go.

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:22:04