JavaScript如何移除字符串中的分号

19

如何使用 JavaScript 从字符串中删除分号(;)?

例如:

var str = '<div id="confirmMsg" style="margin-top: -5px;">'

如何从str中删除分号?


我回滚了这个版本,以包含真实的、原始的示例;检查历史记录中的源代码,可以看到这是原始示例,Gumbo 只是修复了格式问题。 - Brian Campbell
5个回答

22

您可以使用字符串对象的replace方法。这是W3Schools关于它的说明:JavaScript replace()

在您的情况下,您可以执行以下操作:

str = str.replace(";", "");

您也可以使用正则表达式:

str = str.replace(/;/g, "");

这将全局替换所有分号。如果你只想替换第一个实例,你应该从第一个参数中删除g


8

试试这个:

str = str.replace(/;/g, "");

这将删除str中的所有分号,并将结果重新赋值给str

6

根据您需要做什么,您需要注意一些边界情况:

例如,如果您的字符串是这个(包含两个分号):

'<div id="confirmMsg" style="margin-top: -5px; margin-bottom: 5px;">'

有没有像这样的解决方案:

 str.replace(";", "");

将为您提供:

'<div id="confirmMsg" style="margin-top: -5px margin-bottom: 5px">'

该内容无效。

在这种情况下,你最好这样做:

 str.replace(";\"", "\"");

这将仅替换样式字符串末尾的 ";"。

此外,我不会担心删除它。除非您已经确定对于某些晦涩的原因,在您的情况下确实很重要。如果在这种情况下尝试过于聪明,则更有可能导致后来难以调试的问题。


1
+1 是为了提到没有明显的理由去除分号(以及边缘情况)。 - Guffa
请注意,问题中提到的案例并非由提问者提供,而是由Gumbo在编辑中提供的。请查看编辑历史记录。 - Darko
不,这并不是Gumbo在他的编辑中添加的。这个例子本来就在那里,但由于它是原始的、未引用的HTML,当Stack Overflow渲染它时被剥离了;查看原帖的源代码以确认。Gumbo只是修复了格式,使示例能够显示。 - Brian Campbell

2
str = str.replace(";", "");

0

尝试:

str = str.replace(/;/ig,'');

虽然这段代码片段可能解决了问题,但包括解释真的有助于提高您的帖子质量。请记住,您正在为未来的读者回答问题,而这些人可能不知道您的代码建议原因。同时,请尽量不要在代码中添加过多的解释性注释,因为这会降低代码和解释的可读性! - Blue

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接