Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从文本中删除项目符号的正则表达式无效_Javascript_Regex - Fatal编程技术网

Javascript 从文本中删除项目符号的正则表达式无效

Javascript 从文本中删除项目符号的正则表达式无效,javascript,regex,Javascript,Regex,可能的重复项: 我正在从微软Word复制一些数据。该文本可能包含或不包含复制文本中的项目符号。但是我需要一个javascript正则表达式来从复制的文本中删除任何类型的项目符号。下面给出了我的代码。到目前为止,它只删除了• var x = "1. Jnflkvkbfjvb 2. Kjnfbhvjbv 3. ;kbvrjvbrjvb • Jnflkvkbfjvb • Kjnfbhvjbv • ;kbvrjvbrjvb a) Jn

可能的重复项:

我正在从微软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(/[•\t]+/g, '');
x= x.replace(/[1-9]{?}+[.]\t/g, '');
括号创建一组要匹配的字符。当您将整个内容包装在括号中时,它试图只匹配括号中字符组中的任何单个字符(并且没有嵌套,因此它在第二个查询中吃掉了所有重复的字符)

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

说明:

( # 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 (#第一组) [0-9A-Z]+#数字0-9或字母A-Z的任意组合 [)]#一个点或一个结束符 |#……或 •#子弹符号 )\s+#结束组1,匹配以下任何空格 它基本上是你想要移除的各种子弹的混合物:

  • \d\.\s+
    -编号的项目符号
  • [a-z]\)\s+
    -带右括号的小写字母项目符号
  • •\s+
    -常用项目符号
  • [A-Z]\.\s+
    -带点的大写项目符号
  • [IVX]+\.\s+
    -罗马编号的项目符号

什么是期望的输出,什么是实际的输出?我认为你得到的正则表达式看起来不正确,但不清楚它应该是什么。我想你应该看看我对你接受的答案有什么错误?-1因为发布了一个答案正确的问题的副本。你希望
[1-9]{}+
做什么?它将匹配类似于
1{}}
的内容,请参见。我相信那不是你想要的。+1几乎和上次他问这个问题时我给他的答案一样@stema:我明白了。显然,有时解释事情并不足以让他们坚持下去已结束的问题重复。有些人真的让我怀疑他们这样做是不是为了好玩。有时候解释两遍会有帮助;) ( # 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
x = x.replace(/\d\.\s+|[a-z]\)\s+|•\s+|[A-Z]\.\s+|[IVX]+\.\s+/g, "");