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

Red*_*ddy -2 javascript regex

可能重复:
如何使用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);
Run Code Online (Sandbox Code Playgroud)

请有人帮助我.

Rob*_*nik 7

x = x.replace(/\d\.\s+|[a-z]\)\s+|•\s+|[A-Z]\.\s+|[IVX]+\.\s+/g, "");
Run Code Online (Sandbox Code Playgroud)

它基本上是你要删除的各种子弹的组合:

  • \d\.\s+ - 编号的子弹
  • [a-z]\)\s+ - 带闭合支撑的小字母子弹
  • •\s+ - 通常的子弹
  • [A-Z]\.\s+ - 带有圆点的大写子弹
  • [IVX]+\.\s+ - 罗马编号的子弹


Tom*_*lak 5

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);
Run Code Online (Sandbox Code Playgroud)

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

解释:

( # 第 1 组
  [0-9A-Z]+ #数字0-9或字母AZ的任意组合
  [.)] # 一个点或一个结束括号
  | # ...或者
  • # 一个项目符号
 )\s+ # 结束组 1,匹配任何后面的空格

  • +1 几乎与上次他问这个问题时我给他的答案相同 [how-to-identify-and-remove-any-type-of-bullet-in-the-text](http://stackoverflow. com/questions/6479059/how-to-identify-and-remove-any-type-of-bullet-in-the-text/6480127#6480127) (2认同)