问题标签 [backslash]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
9182 浏览

javascript - 正则表达式替换单个反斜杠,不包括后跟某些字符的反斜杠

我有一个正则表达式,如果后面没有以下字符之一,它会从字符串中删除任何反斜杠:\ / 或}。

它应该转动这个字符串:

进入这个:

但问题是它正在处理每个反斜杠。所以它遵循规则,因为它删除了第一个反斜杠,并忽略了第二个反斜杠,因为它后面跟着另一个反斜杠。但是当它到达第三个时,它会删除它,因为它后面没有另一个。

我当前的代码如下所示:str.replace(/\\(?!\\|\/|\})/g,"")

但生成的字符串如下所示:foobar\batz\/hi

如何让它跳过第三个反斜杠?还是做某种明确的否定搜索和替换类型的事情?例如。替换 '\',但不要替换 '\\'、'\/' 或 '\}'?

请帮忙!:)

编辑

抱歉,我应该解释一下 - 我正在使用 javascript,所以我不认为我可以做负面的回顾......

0 投票
2 回答
1599 浏览

php - MySQL update/insert 去除 unicode 条目的反斜杠

我正在尝试使用将 unicode 编码为 \u 的 JSON 数据插入/更新 SQL 字段,但它正在将其剥离:

但是,它像这样保存在数据库中:

我尝试了无数 preg_replace 和 str_replace 方法,但没有一个有效。对此我能做些什么吗?这让我发疯。

谢谢!

0 投票
1 回答
1345 浏览

java - 在json中发送回斜杠字符,响应代码500

我正在尝试通过 JSONObject 通过 http 发送消息。

消息就像:

预期收到的消息:

现在问题是 http 服务器返回我的响应代码 500。并在第 9 行导致异常。注意:问题区域是字符串部分 \KB,如果字符串不包含此反斜杠,一切正常。

我试过:

它没有引起我的任何异常,但收到的消息如下:

JSONObject.escape(message)也没有工作。

0 投票
2 回答
1515 浏览

json - JSON 数组无法传输具有反斜杠的字符串

我正在通过 JSONArray 发送消息,但收到响应代码 500。原因是我的消息字符串包含字符“\”。

字符串 s="苹果 $54\KG"

0 投票
3 回答
3207 浏览

javascript - 如果不存在,请使用 javascript 正则表达式为某些字符添加反斜杠

我还有另一个 Javascript 正则表达式难题......(如果这有点啰嗦 - 很难解释!)

我有一个将字符串发送到弹出窗口的脚本(所有字符在发送时都被编码,因此所有反斜杠都被保留)。在弹出窗口中,它有几个文本输入框,还有一个“摘要”范围,它显示所有输入框中的内容,并在检测到按键时更新。然后,当用户完成后,他们单击一个按钮,将更新的摘要字符串发送回开启者。

要求是反斜杠会自动添加到以下字符之前:\ / },因此用户不需要自己执行此操作。目前我有代码可以去除输入框中的任何反斜杠,但摘要会在适当的地方添加它们。

例如。如果这个字符串被发送到弹出窗口:foobar\\batz\/hi 那么它在摘要中看起来像这样:foobar\\batz\/hi并且在输入框中像这样:foobar\batz/hi。如果您随后在输入框中像这样编辑字符串:foobar\batz/hiya,那么它在摘要中看起来像这样:foobar\\batz\/hiya。到目前为止一切都很好......但是如果您尝试在输入框中输入这个:foobar\\batz/hiya,那么它在摘要中看起来像这样:foobar\\\batz\/hiya。它应该如下所示:foobar\\\\batz\/hiya

这取决于现有代码(在每个“kepup”上运行)。它基本上需要一个正则表达式来查看字符串,\ / or }如果它们不存在则添加反斜杠。这需要一个否定的lookbehind来检查预先存在的反斜杠(但是javascript不能做否定的lookbehinds)。我以为我已经通过首先反转字符串(使用自定义函数)并进行负前瞻,然后再次反转字符串来破解这个问题,如下所示:

但是,我现在可以看到问题出在哪里。当遇到双反斜杠的第一个(或第二个,因为它被反转)时,它会添加额外的反斜杠。但是因为第二个反斜杠已经有了第一个反斜杠,所以它不会添加它。

每次反转字符串时,我也担心内存分配。这是因为我了解到 javascript 字符串是不可变的,我相信这会带来每次反转字符串时分配更多内存的不幸效果。在每次击键时执行此操作(因为它需要在输入框更改时更新摘要行)可能会导致一些问题(...?)。

有没有其他方法可以做到这一点?最好只使用一些正则表达式,并且没有反转......

总而言之,要求是创建一个正则表达式替换,在字符串中搜索这些字符中的任何一个,\ / }并在它们之前添加一个“转义”反斜杠(如果转义反斜杠不存在)。因此,当连续遇到多个反斜杠时,它应该具有智能,以转义每个反斜杠(请注意,我不是在更新实际的输入框,而是我用来更新摘要的变量)。

我需要正则表达式大师的帮助!

0 投票
1 回答
1002 浏览

backslash - git Status 两次显示相同的文件 - 但路径斜杠样式不同

当我执行 agit status时,我会看到一个如下所示的更改列表:

如果我add然后commitCustomizablePDFs/InvoiceAdapter.php,它将被提交(应该如此)并且不再出现在状态列表中(好)。

但是,git status仍会显示 deleted: "CustomizablePDFs\\Model/AlignContainer.php"在状态列表中。如果我git rm使用该文件路径,它会失败说 pathspec 不匹配任何文件。

如何从状态列表中删除此条目?

谢谢你,

0 投票
1 回答
1113 浏览

python - [Python]:命令中的双反斜杠

概括:

我想在 python 中执行一个 pskill.exe 命令。在 dos-prompt 中尝试过:C:\Users\JohanSA\Documents\EclipseWorkspace\ProdataATFBASE\src\resources\pskill.exe \localhost -t 11780 --> 工作得很好!

==> 但我想通过 Python 运行相同的命令。

prodataOSLib.executeCmd("pskill.exe -t 11780", True, True)

--> 干得好!

现在我想将计算机名添加到 pskill 突击队

prodataOSLib.executeCmd("pskill.exe \\localhost -t 11780", True, True)

-->那行不通

登录 executeCmd 函数说:

11-04-2011 13:35:15 [prodataoslib-executeCmd] - 调试:执行命令:C:\Users\JohanSA\Documents\EclipseWorkspace\ProdataATFBASE\src\resources\pskill.exe \localhost -t 11780

--> 问题是“localhost”这个词之前只有1个反斜杠-->但是我怎么能在“localhost”之前有这2个反斜杠呢?

谁能帮我这个?

非常感谢!约翰

这是 executeCmd 函数:

0 投票
4 回答
8215 浏览

mysql - 只需要在 MySQL 中选择包含反斜杠的数据

我正在尝试更正数据库中被双重转义的条目。我相信在使用 mysql_real_escape_string 时打开了magic_quotes。双重转义导致某些搜索结果不正确/丢失。

我已经关闭了magic_quotes,并计划搜索带有反斜杠的条目并更新它们以删除任何双重转义。麻烦的是,当我执行查询以搜索带有反斜杠的条目时,我总是没有得到任何结果。

我在这里推荐使用'%\\\\%':http: //dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html#operator_like

如果我输出每个标题,其中许多都有不需要的反斜杠,所以我知道它们在那里。我似乎无法在查询中隔离它们。

同样,只是尝试返回带有 \ 的条目。


编辑:MySQL 版本是 5.0.92-community。排序规则是 latin1_swedish_ci。字符集是 UTF-8 Unicode

%\\% 不起作用。我试过了。它在 mysql.com 上被列为不正确:

要搜索“\”,请将其指定为“\\\\”;这是因为反斜杠被解析器剥离一次,并且在进行模式匹配时再次剥离,留下一个反斜杠进行匹配。

0 投票
1 回答
95 浏览

php - php斜线表达式

我有一个这样的html

<div><font color="green">ABC</font>A'ssd"fsdf</div>

我需要将以上内容更改为

<div><font color=\"green\">ABC</font>A'ssd"fsdf</div>

即 \" 仅出现在 html 组件中,而不出现在文本数据中。

在php中如何?

0 投票
1 回答
189 浏览

php - 通过 preg_match 传递带有元字符的变量?

我已经尝试了三个小时通过 preg_match 传递这些变量(字符串)。我已经尝试了一切。preg_quote 只会让他们更糟。

你会认为