javascript 字符串替换问题,字符串中包含了其他的字符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 字符串替换问题,字符串中包含了其他的字符相关的知识,希望对你有一定的参考价值。

var text2 = "当前主产品的包内分钟数为#当前主产品的包内分钟数(分钟)#分钟,并且上月流量单价是#上月流量单价(元/MB)#元#【降套维系】建议的流量包的大小(M)#“;
如何将#【降套维系】建议的流量包的大小(M)# 直接替换成#flowsize#,使用JS中的replace方法只能替换纯字符串如果其中带有其他符号就替换不了,有没有什么办法能替换这种类型的字符呢

你好!!


一种笨方法就是使用split()函数,对字符"#"进行分割,然后进行处理,如下:

var text2 = "当前主产品的包内分钟数为#当前主产品的包内分钟数(分钟)#分钟,并且上月流量单价是#上月流量单价(元/MB)#元#【降套维系】建议的流量包的大小(M)#";
var tmpArr  = text2.split("#");
tmpArr[tmpArr.length-2] = "flowsize";
text2 = tmpArr.join("#");


另外,使用正则表达式,更好更强大·····

参考技术A text2 = text2.replace("#【降套维系】建议的流量包的大小(M)#","#flowsize#"); 直接就可以替换了。追问

var text2 = "当前主产品的包内分钟数为#【降套维系】建议的流量包的大小(M)#分钟,并且上月流量单价是#上月流量单价(元/MB)#元#【降套维系】建议的流量包的大小(M)#“;

如果要替换所有的#【降套维系】建议的流量包的大小(M)#呢?

追答

text2 = text2.replace(/#【降套维系】建议的流量包的大小(M)#/ig,"#flowsize#");
这样就用了,正则,

使用 .bat 文件在目录中包含的多个文件中查找和替换字符串

【中文标题】使用 .bat 文件在目录中包含的多个文件中查找和替换字符串【英文标题】:Find and replace a string within multiple files contained within a directory using a .bat file 【发布时间】:2021-10-11 12:11:17 【问题描述】:

我的目标是搜索一个包含在一个目录中的多个 .config 文件中的字符串。

文件夹结构如下:C:\Parent_Folder\child_folder\

子文件夹包含许多不同的文件夹,每个文件夹中都包含一个 .config 文件。

我正在尝试创建一个 .bat 文件,该文件将允许我搜索所有这些文件夹,然后将某个字符串替换为新字符串。

我找到了一种方法来搜索所有文件并将其打印到一个文档中,显示需要更改的位置:

findstr /i /s "DATABASE1" *.config > c:\temp\Changes.txt

但是,在创建批处理文件以搜索目录并用新字符串替换所有这些文件时,我遇到的文件路径不存在。

我查看了以下类似问题: Batch script to replace specific string in multiple files

Find and replace string in multiple files within a folder using windows Batch script

我目前使用的代码是:

@echo off
setlocal enableextensions disabledelayedexpansion

set "dir1=C:\Parent_Folder\child_folder\"
set "search=database1"
set "replace=db2"

for /f "delims=" %%i in ("%dir1%\*.config") do (
    set "line=%%i"
    setlocal enabledelayedexpansion
    set "line=!line:%search%=%replace%!"
    >>"%configFile%" echo(!line!
    endlocal
)

@pause

我一直遇到的错误是找不到指定的路径,我认为可能是由于环境变量,所以我在那里添加了路径并在.bat文件中显示了echo %PATH%,路径确实存在,但是我不断收到错误消息,指出它不存在。

所以我不确定是否真的是其他原因导致了这个问题。

任何建议都会很棒。

【问题讨论】:

%configFile%的内容是什么? 【参考方案1】:

你可能想要[SS64]: FOR /R。

小例子:

script00.bat

@echo off

setlocal enableextensions disabledelayedexpansion

set _ROOT_DIR=".\dir0"

for /R %_ROOT_DIR% %%f in (*.config) do (
    echo file: %%f
    rem Do the rest
)

输出

[cfati@CFATI-5510-0:e:\Work\Dev\***\q068684288]> tree /f /a
Folder PATH listing for volume SSD0-WORK
Volume serial number is AE9E-72AC
E:.
|   script00.bat
|
\---dir0
    +---dir0
    |       file.config
    |
    +---dir1
    |       file.config
    |
    \---dir2
            file.config


[cfati@CFATI-5510-0:e:\Work\Dev\***\q068684288]> script00.bat
file: e:\Work\Dev\***\q068684288\dir0\dir0\file.config
file: e:\Work\Dev\***\q068684288\dir0\dir1\file.config
file: e:\Work\Dev\***\q068684288\dir0\dir2\file.config

【讨论】:

以上是关于javascript 字符串替换问题,字符串中包含了其他的字符的主要内容,如果未能解决你的问题,请参考以下文章

使用 .bat 文件在目录中包含的多个文件中查找和替换字符串

JavaScript:如果字符串在第一个字母中包含元音,则遍历字符串并返回字符串+'ay'

在javascript中包含整个字符串中的单词[关闭]

C#中判断字符串中包含某个字符

如果此类字符串在Javascript中包含逗号,则正则表达式获取引号之间的文字字符串的内容

shell的sed工具,如何删除一个文件中包含了特殊路径字符串的行? 例如文件file,里面有内容,