我如何做多个链替换称呼Ms,Cik,Mr,Encik,Puan,Mdm,Mrs - >总共7个文本
我目前只有2个文字
$("h1").each(function() {
$(this).html($(this).html().replace('Ms', '').replace('Cik', ''));
});
我的HTML示例如下。我需要隐藏上面的称呼
<h1>Dr Phillips</h1>
<h1>Ms Peter</h1>
<h1>Mr Robert</h1>
<h1>Prof Thomas</h1>
<h1>Mdm Khoo</h1>
JSFiddle链接:https://jsfiddle.net/mxm2oL0a/3/
答案 0 :(得分:1)
您可以使用包含要替换的所有值的正则表达式,如下所示:
$("h1").text(function(i, t) {
return t.replace(/^(Ms|Cik|Mr|Encik|Puan|Mdm|Mrs)(?:\W)/, '');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h1>Dr Phillips</h1>
<h1>Ms Peter</h1>
<h1>Mr Robert</h1>
<h1>Prof Thomas</h1>
<h1>Mdm Khoo</h1>
请注意,^
字符定义我们只想在字符串的开头找到文本。 (?:\W)
指定我们只想将组捕获为整个单词。根据您的示例,这不是绝对必要的,但更强大。
还要注意使用提供给text()
的处理函数,否定了显式循环的需要。
答案 1 :(得分:1)
除了Rory McCrossan的解决方案外,
请注意,如果您只想获得第二个字,您可以简单地执行此操作:
$("h1").each(function() {
$(this).html($(this).html().split(" ")[1]);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h1>Dr Phillips</h1>
<h1>Ms Peter</h1>
<h1>Mr Robert</h1>
<h1>Prof Thomas</h1>
<h1>Mdm Khoo</h1>