我想以我对JS超级新手这一事实为前提。
我希望用JS做一个查找和替换。问题是,如果结果已经就位,我希望查找和替换不会更改任何内容(如果这有任何意义?)
我的示例是,我希望运行JS来添加一个单词"®“,但如果符号已经存在,则不添加它。
非常感谢你的帮助,哈里
$("body").children().each(function () {
$(this).html( $(this).html().replace(/Hello/g,"Hello®") );
});发布于 2020-08-28 23:40:46
首先检查"®“是否已可用或未使用$(this).html().indexOf("®") === -1,如果此条件返回true,则替换。
$("body").children().each(function () {
if($(this).html().indexOf("®") === -1) {
$(this).html( $(this).html().replace(/Hello/g,"Hello®") );
}
});发布于 2020-08-29 00:04:53
下面是使用正则表达式/(^|\s)Hello(\s|$)/g的解决方案
<!DOCTYPE html>
<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>
<body>
<p>Hello</p>
<p>Hello®</p>
</body>
<script>
$("body").children().each(function() {
$(this).html($(this).html().replace(/(^|\s)Hello(\s|$)/g, "Hello®"));
});
</script>
</html>
发布于 2020-08-29 12:31:13
我建议您使用正则表达式,直到您发现了一种模式,可以在符号已经存在的地方消除“匹配”。此外,不要忘记检查用于此符号的各种实体,如®。
有一些很棒的正则表达式测试者。我推荐Debuggex
https://stackoverflow.com/questions/63636858
复制相似问题