【发布时间】:2016-12-19 02:50:56
【问题描述】:
我有一些输入来自网页,我将在其他地方重新显示和提交。当前的问题是,在将输入提交到其他地方之前,我想将夹在非反斜杠字符之间的所有 single 反斜杠加倍。
测试字符串"domain\name\\nonSingle\\\WontBe\\\\Returned",我只想获取域名和名称之间的第一个反斜杠。
这个字符串应该什么都没有"\\get\\\nothing\\\\"
我可以最接近的当前模式是[\w][\\](?!\\),但是这将从我列出的第一个测试字符串中获得"\n"。我想对正则表达式使用lookbehind,但是对于我正在使用的版本,javascript没有这样的东西。这是我在http://www.regexpal.com/ 上测试我的正则表达式的网站
目前我使用这个正则表达式 [\w][\\](?!\\) 来提取夹在非反斜杠字符和它们之前的字符(我不想要的)之间的所有单个反斜杠效率低下,然后将其替换为相同的字符串加上一个反斜杠在它的末尾。
例如给定domain\name\\bl\\\ah,我当前的正则表达式[\w][\\]\(?!\\) 将返回"n\"。这导致我的代码不得不做一些额外的处理,而不仅仅是使用替换。
我不关心是否存在任何双、三或四反斜杠,它们可以单独放置。
【问题讨论】:
-
domain\name\previousBackslashesUnwanted上的正则表达式操作应该返回什么?这对我来说不清楚 -
测试字符串 "domain\name\\previousBackslashesUnwanted" ,我只想获得域名和名称之间的单个 \。给定测试字符串 \\\\get\\\\nothing,所需的正则表达式不应返回任何内容。我拥有的最接近的正则表达式是 [\w][\\](?!\\) (我在这里转义时遇到了麻烦,但中间方括号和圆括号中应该只有 2 个反斜杠)返回第一个字符在单数反斜杠之前。 regexpal.com
-
你想对比赛做什么?换成别的东西?拆分字符串?还是为用户突出显示?
-
我想用双反斜杠替换夹在非反斜杠之间的单反斜杠
标签: javascript angularjs regex string escaping