如何在不影响进程的空格的情况下替换js中的文本

Posted

技术标签:

【中文标题】如何在不影响进程的空格的情况下替换js中的文本【英文标题】:How to replace text in js without the spaces affecting the process 【发布时间】:2020-02-26 20:16:26 【问题描述】:

我在 php 中有这段代码,它将用其他单词替换一些单词:

$Data1 = array("/Hello\s+there/i", "/I\s*m\s+Good!/i");
$Data2 = array("bye", "How are you?");
$data = preg_replace($Data1, $Data2, $data);

PHP 中的代码获取值 ($data) 并将 $Data1 数组中的所有单词替换为数组 $Data2 中的单词中的单词,而不考虑单词之间的空格 (\s+, \s*)。 像这样(TheOriginalText ==> TheNewText):

Hello there!, something else     ==> bye!, something else
Hello   there !, something else  ==> bye!, something else
Hello~there !, something else    ==> Hello~there !, something else

对于 js,使用str.replace 会做到这一点(TheOriginalText ==> TheNewText):

Hello there!, something else     ==> bye!, something else
Hello   there !, something else  ==> Hello   there !, something else
Hello~there !, something else    ==> Hello~there !, something else

但我不希望空格影响替换过程。 我尝试在js中使用这段代码,但没有成功:

function Code(data)
  var Code1 = [/Print/i, /Prin_/i, /New~Line/i];
  var JSCode = ["document.write", "document.write('<br>\n');document.write", "document.write('<br>\n');"];
  return data = str.replace(Code1, JSCode);

有没有其他代码可以在 js 和 c# 中使用数组来做同样的事情(很可能我在 js 中比在 c# 中更需要它)

【问题讨论】:

我的回答对你有帮助吗? 不,这不是我想要的 【参考方案1】:

您可以将replace 用于 javascript

var str = "Mr Blue has a blue house and a blue car";
var res = str.replace(/blue/gi, "red"); 

结果是:

Mr red has a red house and a red car.

【讨论】:

有什么办法可以替换文本而不影响进程的空格 @EnderAdel 请更好地解释您的需求 重新加载您的页面

以上是关于如何在不影响进程的空格的情况下替换js中的文本的主要内容,如果未能解决你的问题,请参考以下文章

如何在不影响 heroku 服务器中的特定文件的情况下推送所有文件?

如何在不替换旧文本的情况下向 TextView 添加文本?

如何在不丢失 Flex 格式的情况下替换富文本编辑器文本

如何在不影响周围文本的情况下向 div 添加文本?

Selenium:如何在不调用 driver.quit() 的情况下停止影响 PC 内存的 geckodriver 进程?

如何在不影响文本的情况下在背景图像上使用不透明度?