javascript - 重用 Javascript 代码,而无需一次又一次地重新粘贴它
问题描述
我有下面的代码,它查找文本“UID”并将其更改为“UID *”
在我的页面上,还有“描述”、“分数”等其他术语。我也想在这些后面加上 * - 有没有一种简洁的方法可以让下面的代码也可以编辑它们?我知道的唯一方法是一次又一次地重复这个代码块?
<script type="text/javascript">
//Mark UID as Mandatory
var CFN = "UID";
$(document).ready(ExecuteOrDelayUntilScriptLoaded(MainFunction, "sp.js"));
function MainFunction() {
Mandatory();
}
function Mandatory(){
$(".ms-accentText").each(function() {
var text = $(this).text();
$(this).text(text.replace(CFN, 'UID *'));
});
}
</script>
编辑。我尝试了下面的回复,但这对我不起作用,我现在有了这段代码,但又似乎不起作用(它试图在使用 a 找到的“UID”和“描述”上添加 *多变量;
<script type="text/javascript">
//Mark UID as Mandatory
var MandatoryCFs = ["UID", "Description"];
$(document).ready(ExecuteOrDelayUntilScriptLoaded(MainFunction, "sp.js"));
function MainFunction() {
Mandatory();
}
function Mandatory(){
$(".ms-accentText").each(function() {
var text = $(this).text();
$(this).text(text.append(MandatoryCFs, ' *'));
});
}
</script>
解决方案
使用正则|
表达式列表替换多个字符串
//Mark UID as Mandatory
var MandatoryCFs = ["UID", "Description"];
$(document).ready(ExecuteOrDelayUntilScriptLoaded(MainFunction, "sp.js"));
function MainFunction() {
Mandatory();
}
function Mandatory(){
$(".ms-accentText").each(function() {
var text = $(this).text();
$(this).text(text.replace(new RegExp(MandatoryCFs.join('|'),'g'), '$& *'));
});
}
或者如果您不需要替换的字符串是动态的,则可以这样:
text.replace(/UID|Description/g, '$& *')
推荐阅读
- spring - 如何修复java Spring bean Autowire无法处理(123)'{'
- php - 从 PHP 导出 XLS 文件并替换旧文件
- spring-boot - 从表中删除一行 Thymeleaf Springboot
- c - C 返回重复字符的个数
- angular - 得到一个错误“预期的间谍
被称为“角6茉莉花” - http - 如何解决自签名证书错误?
- python - 使用 NumPy 在 Python 中数组中对象的平均值
- c# - SemanticModel..GetSymbolInfo /GetDeclaredSymbol 返回 null
- java - 如何使用 Sinch 进行电话验证?
- node.js - 如何从 Node js 中的 post 请求中返回数据?