可能重复:
How to remove Bullets from the text using javascript regular expression
How to identify and Remove any type of Bullet in the Text
我是来自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);
请有人帮帮我。
答案 0 :(得分:6)
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+
- 罗马编号的子弹答案 1 :(得分:3)
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);
从示例文本中删除所有项目符号。请注意,因为这也可能会删除您不想删除的文本。
说明:
( # group 1 [0-9A-Z]+ # any combination of digits 0-9 or letters A-Z [.)] # either a dot or a closing paren | # ...or • # a bullet sign )\s+ # end group 1, match any following whitespace
答案 2 :(得分:0)
问题是过分使用括号。试试这个:
x= x.replace(/[•\t]+/g, '');
x= x.replace(/[1-9]{?}+[.]\t/g, '');
括号创建一组要匹配的字符。当你用括号括起整个东西时,它试图匹配括号内的字符组中的任何一个字符(并且没有嵌套,所以它在第二个查询中占用了所有重复项。)