从文本中删除项目符号的正则表达式不起作用

Regular expression to remove bullets from the text is not working

本文关键字:正则表达式 不起作用 符号 删除项目 文本      更新时间:2023-09-26

可能的重复:
如何使用javascript正则表达式从文本中删除项目符号
如何识别和删除文本中的任何类型的项目符号

我正在复制MS Word中的一些数据。该文本在复制的文本中可能包含项目符号,也可能不包含项目符号。但是我需要javascript中的正则表达式来从复制的文本中删除任何类型的项目符号。我的代码如下。截至目前,仅删除•。

 var x = "1.   Jnflkvkbfjvb  2.   Kjnfbhvjbv  3.   ;kbvrjvbrjvb    •    Jnflkvkbfjvb    •    Kjnfbhvjbv    •    ;kbvrjvbrjvb     a)   Jnflkvkbfjvb  b)   Kjnfbhvjbv  c)   ;kbvrjvbrjvb    A.   Jnflkvkbfjvb  B.   Kjnfbhvjbv  C.   ;kbvrjvbrjvb     I.      Jnflkvkbfjvb  II.      Kjnfbhvjbv III.      ;kbvrjvbrjvb ";
 x = x.replace(/[•'t.+]/g, '');
 x = x.replace(/[[1-9]{?}+[.]'t]/g, '');
 alert(x);

请有人帮我。

x = x.replace(/'d'.'s+|[a-z]')'s+|•'s+|[A-Z]'.'s+|[IVX]+'.'s+/g, "");

它基本上是你想移除的各种子弹的混合物:

  • 'd'.'s+-编号项目符号
  • [a-z]')'s+-带大括号的小写字母项目符号
  • •'s+-普通子弹
  • [A-Z]'.'s+-带圆点的大写项目符号
  • [IVX]+'.'s+-罗马数字项目符号
var x = "1.   Jnflkvkbfjvb  2.   Kjnfbhvjbv  3.   kbvrjvbrjvb'
•    Jnflkvkbfjvb  •    Kjnfbhvjbv  •    kbvrjvbrjvb'
a)   Jnflkvkbfjvb  b)   Kjnfbhvjbv  c)   kbvrjvbrjvb'
A.   Jnflkvkbfjvb  B.   Kjnfbhvjbv  C.   kbvrjvbrjvb'
I.   Jnflkvkbfjvb  II.  Kjnfbhvjbv  III. kbvrjvbrjvb";
x = x.replace(/([0-9A-Z]+[.)]|•)'s+/gi, "");
alert(x);

从示例文本中删除所有项目符号。请小心,因为这可能还会删除您不想删除的文本。

说明:

(第1组[0-9A-Z]+#数字0-9或字母A-Z的任意组合[.)]#点或右括号|#。。。或•#项目符号)''s+#结束组1,匹配以下任何空格

问题是过度使用括号。试试这个:

x= x.replace(/[•'t]+/g, '');
x= x.replace(/[1-9]{?}+[.]'t/g, '');

括号创建一组要匹配的字符。当你把整个东西放在括号里时,它试图只匹配括号内字符组中的任何一个字符(而且没有嵌套,所以它在第二个查询中吃掉了所有重复的字符)。