如何替换 java 脚本中所有出现的“\\”字符串
how to replace all occurrances of "\\" string in java script
这似乎是一个非常简单的问题,但我无法让它发挥作用。
如何转换以下字符串:
var origin_str = "abc/!/!"; // Original string
var modified_str = "abc!!"; // replaced string
我试过这个:
console.log(origin_str.replace(/\/,''));
这只会删除第一次出现的反斜杠。我想替换所有。我在 SO 中遵循了这条指令:How to replace all occurrences of a string in JavaScript?
origin_str.replace(new RegExp('\', 'g'), '');
此代码向我抛出错误 SyntaxError: Invalid regular expression: /\/: \ at end of pattern
。在 javascript.
中删除 backslash
的正则表达式是什么
正在寻找这个?
origin_str.replace(/\//g, "")
替换的语法是
.replace(/pattern/flags, replacement)
所以在我的例子中,模式是 \/
- 转义斜线
g
是全局标志。
JavaScript
中正则表达式的快速基本概述
使用正则表达式时,您可以通过两种方式定义表达式。
- 直接在函数或变量中使用
/regular expression/
- 或者使用正则表达式构造函数:
new RegExp('regular expression')
.
请注意两种定义方式的区别。在第一个中,搜索模式由 forward slashes
封装,而在第二个中,搜索模式作为 string
.
传递
请记住,正则表达式实际上是一种具有自己语法的搜索语言。一些字符用于定义操作:/, \, ^, $, . (dot), |, ?, *, +, (, ), [, {, ', "
。这些字符称为 metacharacters,如果您希望它们成为搜索模式的一部分,则需要 escaped。如果不是,它们将被视为一个选项或生成脚本错误。转义是通过使用反斜杠完成的。例如。 \
转义第二个反斜杠,搜索模式现在将搜索反斜杠。
您可以在搜索模式中添加多种选项。:
例子
添加\d
将使模式搜索下划线[0-9] and/or 之间的数值。简单的正则表达式从左到右解析。
/javascript/
在字符串中搜索单词 javascript
。
/[a-z]/
当模式放在方括号之间时,搜索模式会搜索与方括号内的任何一个值匹配的字符。这将在 229302d34330
中找到 d
您可以构建包含多个块的正则表达式。
/(java)|(emca)script/
在字符串中查找 javascript 或 emcascript。 |
是 or
运算符。
/a/ vs. /a+/
第一个匹配 aaabbb
中的第一个 a
,第二个匹配 a
的重复,直到找到另一个字符。所以第二个匹配:aaa
。
加号+
表示找到一次或多次。您也可以使用 *
表示零次或多次。
/^\d+$/
我们之前已经看到了 \d
和加号。这意味着找到一个或多个数字字符。 ^
(插入符号)和 $
(美元符号)是新的。 ^
表示从字符串的开头开始搜索,而 $
表示直到字符串的结尾。此表达式将匹配:574545485
但不匹配 d43849343
、549854fff
或 4348d8788
.
标志
标志是运算符,在正则表达式之后声明 /regular expression/flags
JavaScript 有三个标志供您使用:
g
(全局)多次搜索模式。
i
(忽略大小写)忽略模式中的大小写。
m
(多行)将开始和结束字符(^
和 $
)视为处理多行(即匹配每行的开头或结尾(由\n
或 \r
), 不仅是整个输入字符串的开头或结尾)
所以像这样的正则表达式:
/d[0-9]+/ig
匹配 D094938
和 D344783
在 98498D094938A37834D344783
.
i
使搜索不区分大小写。由于模式中的 d
匹配 D
。如果 D
后跟一个或多个数字,则匹配该模式。 g
标志命令表达式全局查找模式或简单地说:多次。
在您的情况下 @Qwerty 提供了正确的正则表达式:
origin_str.replace(/\//g, "")
其中搜索模式是单个正斜杠 /
。由反斜杠转义以防止脚本错误。 g
标志命令替换函数搜索字符串中所有出现的正斜杠并将它们替换为空字符串 ""
。
这似乎是一个非常简单的问题,但我无法让它发挥作用。
如何转换以下字符串:
var origin_str = "abc/!/!"; // Original string
var modified_str = "abc!!"; // replaced string
我试过这个:
console.log(origin_str.replace(/\/,''));
这只会删除第一次出现的反斜杠。我想替换所有。我在 SO 中遵循了这条指令:How to replace all occurrences of a string in JavaScript?
origin_str.replace(new RegExp('\', 'g'), '');
此代码向我抛出错误 SyntaxError: Invalid regular expression: /\/: \ at end of pattern
。在 javascript.
backslash
的正则表达式是什么
正在寻找这个?
origin_str.replace(/\//g, "")
替换的语法是
.replace(/pattern/flags, replacement)
所以在我的例子中,模式是 \/
- 转义斜线
g
是全局标志。
JavaScript
中正则表达式的快速基本概述使用正则表达式时,您可以通过两种方式定义表达式。
- 直接在函数或变量中使用
/regular expression/
- 或者使用正则表达式构造函数:
new RegExp('regular expression')
.
请注意两种定义方式的区别。在第一个中,搜索模式由 forward slashes
封装,而在第二个中,搜索模式作为 string
.
请记住,正则表达式实际上是一种具有自己语法的搜索语言。一些字符用于定义操作:/, \, ^, $, . (dot), |, ?, *, +, (, ), [, {, ', "
。这些字符称为 metacharacters,如果您希望它们成为搜索模式的一部分,则需要 escaped。如果不是,它们将被视为一个选项或生成脚本错误。转义是通过使用反斜杠完成的。例如。 \
转义第二个反斜杠,搜索模式现在将搜索反斜杠。
您可以在搜索模式中添加多种选项。:
例子
添加\d
将使模式搜索下划线[0-9] and/or 之间的数值。简单的正则表达式从左到右解析。
/javascript/
在字符串中搜索单词 javascript
。
/[a-z]/
当模式放在方括号之间时,搜索模式会搜索与方括号内的任何一个值匹配的字符。这将在 229302d34330
d
您可以构建包含多个块的正则表达式。
/(java)|(emca)script/
在字符串中查找 javascript 或 emcascript。 |
是 or
运算符。
/a/ vs. /a+/
第一个匹配 aaabbb
中的第一个 a
,第二个匹配 a
的重复,直到找到另一个字符。所以第二个匹配:aaa
。
加号+
表示找到一次或多次。您也可以使用 *
表示零次或多次。
/^\d+$/
我们之前已经看到了 \d
和加号。这意味着找到一个或多个数字字符。 ^
(插入符号)和 $
(美元符号)是新的。 ^
表示从字符串的开头开始搜索,而 $
表示直到字符串的结尾。此表达式将匹配:574545485
但不匹配 d43849343
、549854fff
或 4348d8788
.
标志
标志是运算符,在正则表达式之后声明 /regular expression/flags
JavaScript 有三个标志供您使用:
g
(全局)多次搜索模式。i
(忽略大小写)忽略模式中的大小写。m
(多行)将开始和结束字符(^
和$
)视为处理多行(即匹配每行的开头或结尾(由\n
或\r
), 不仅是整个输入字符串的开头或结尾)
所以像这样的正则表达式:
/d[0-9]+/ig
匹配 D094938
和 D344783
在 98498D094938A37834D344783
.
i
使搜索不区分大小写。由于模式中的 d
匹配 D
。如果 D
后跟一个或多个数字,则匹配该模式。 g
标志命令表达式全局查找模式或简单地说:多次。
在您的情况下 @Qwerty 提供了正确的正则表达式:
origin_str.replace(/\//g, "")
其中搜索模式是单个正斜杠 /
。由反斜杠转义以防止脚本错误。 g
标志命令替换函数搜索字符串中所有出现的正斜杠并将它们替换为空字符串 ""
。