Javascript 替换单反斜杠“\&引用;带双反斜杠“\\&引用;
我有一个带文件路径的字符串。我想用双反斜杠(\\)替换所有单反斜杠(\\) 控制台给我看了Javascript 替换单反斜杠“\&引用;带双反斜杠“\\&引用;,javascript,regex,replace,Javascript,Regex,Replace,我有一个带文件路径的字符串。我想用双反斜杠(\\)替换所有单反斜杠(\\) 控制台给我看了 c:asdlkjklsdfjkl 我发现了类似的东西,不幸的是它不起作用。 试试: var parts = replaceableString.split('\\'); var output = parts.join('\\\\'); 就我个人而言,由于我不太擅长reg EXP,所以在处理非字母数字字符时,我倾向于避免使用它们,这既是因为可读性,也是为了避免奇怪的错误。\n是一个转义
c:asdlkjklsdfjkl
我发现了类似的东西,不幸的是它不起作用。
试试:
var parts = replaceableString.split('\\');
var output = parts.join('\\\\');
就我个人而言,由于我不太擅长reg EXP,所以在处理非字母数字字符时,我倾向于避免使用它们,这既是因为可读性,也是为了避免奇怪的错误。\n是一个转义字符。因此,
replacablestring
不包含任何反斜杠
要解决此问题,您应该如下声明字符串:
var replaceableString = "c:\\asd\\flkj\\klsd\\ffjkl";
这将提醒您c:asdlkjklsdfjkl
,因为“\”是不考虑的转义字符
要在字符串中添加反斜杠,应执行以下操作
var replaceableString = "c:\\asd\\flkj\\klsd\\ffjkl";
alert(replaceableString);
这将提醒您c:\asd\flkj\klsd\ffjkl
如果希望字符串在默认情况下具有“\”,则应将其转义。。使用函数
您的代码中有几个问题
\
,需要对其进行转义
创建如下字符串时:replacablestring=“c:\asd\flkj\klsd\ffjkl”前面带有\
的code>字符被视为转义序列。因此,在字符串创建过程中,它尝试解释转义序列\a
,因为这是无效的,所以它将a
存储到字符串中。例如,\n
将被解释为换行符
@
来自一个.net示例。Javascript不知道“原始”字符串
var string = "c:\\asd\\flkj\\klsd\\ffjkl";
var regex = /\\/g;
var FilePath = string.replace(regex, "\\\\");
如果您无法控制要在其中查找反斜杠的字符串的内容,并且该字符串包含单个
\
值(例如变量myPath containsC:\Some\Folder\file.jpg
),那么您实际上可以在JavaScript中将单个反斜杠引用为string.fromCharCode(92)
因此,要在上面的文件路径示例中获取文件名
var justTheName = myPath.split(String.fromCharCode(92)).pop();
在字符串匹配的情况下,最好使用encodeURIComponent、decodeURIComponent
match(encodeURIComponent(inputString));
function match(input)
{
for(i=0; i<arr.length; i++)
{
if(arr[i] == decodeURIComponent(input))
return true;
else return false;
}
}
匹配(encodeURIComponent(inputString));
功能匹配(输入)
{
对于(i=0;i在字符串中有一个反斜杠的情况下,javascript replace方法不允许我替换这个反斜杠
相反,我必须使用split方法,该方法返回一个拆分字符串数组,然后连接字符串而不使用反斜杠(或任何您想要替换它的内容)
解决方案(将反斜杠替换为下划线):
首先对字符串进行编码
然后将所有出现的%5C替换为%5C%5C
最后,对字符串进行解码
var result = encodeURI(input);
result=decodeURI(result.replace(/%5C/g,"%5C%5C"));
答案如下:
用于将单反斜杠替换为单正斜杠:
var stringReplaced = String.raw`c:\asd\flkj\klsd\ffjkl`.split('\\').join('/')
console.log(stringReplaced);
var stringReplaced = String.raw`c:\\asd\\flkj\\klsd\\ffjkl`.split('\\\\').join('/')
console.log(stringReplaced);
用于将双反斜杠替换为单正斜杠:
var stringReplaced = String.raw`c:\asd\flkj\klsd\ffjkl`.split('\\').join('/')
console.log(stringReplaced);
var stringReplaced = String.raw`c:\\asd\\flkj\\klsd\\ffjkl`.split('\\\\').join('/')
console.log(stringReplaced);
在将值赋给变量之前,需要通过string.raw传递字符串的值
var replacablestring=String.raw`c:\asd\flkj\klsd\ffjkl`.replace(/\\/g,“\\\\”);
console.log(replaceableString)
那里的@
在做什么?您的字符串不包含\请查看大量的JavaScript正则表达式示例。这不是唯一一个多次解决的问题。很难相信写下一个问题所花费的时间比查找自己的时间要少。为什么需要这样做?不不是。您缺少对字符串在JavaScript中如何工作的基本理解。用户在输入字段中输入路径本身的事实。实时处理托管行,并替换所有“\”按键?@user2075057使其清晰,用户输入带有“\”的路径,因此您希望它保留在字符串中…?我的意思是不转义…?@Prasath K我想用我的java代码显示文件中的内容。@Prasath K我还想将输入字段中的信息保存在同一文件中。这是我的服务所需要的。这项任务我决定了,但如果我有进入双斜线,这不是一个漂亮的选择sight@user2075057转义输入字符串并使用它打开或保存文件。我的意思是转义('c:\asd\flkj\klsd\ffjkl');…检查我编辑的答案这不是答案,因为问题不是如何用正斜杠开始替换。
var stringReplaced = String.raw`c:\asd\flkj\klsd\ffjkl`.split('\\').join('/')
console.log(stringReplaced);
var stringReplaced = String.raw`c:\\asd\\flkj\\klsd\\ffjkl`.split('\\\\').join('/')
console.log(stringReplaced);