Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.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 RegExp检测省略号问题_Javascript_Regex_Regex Lookarounds - Fatal编程技术网

使用JavaScript RegExp检测省略号问题

使用JavaScript RegExp检测省略号问题,javascript,regex,regex-lookarounds,Javascript,Regex,Regex Lookarounds,我有一些字符串意味着包含三个点…但有时它们一行只包含两个点,或者一行包含三个以上的点。我试图检测点太多或太少的字符串 此正则表达式有效,但仅适用于Chrome: /( 其他浏览器的JavaScript RegExp引擎不支持lookbehind,从我所读到的内容来看,我不能重写它使lookbehind成为lookahead,因为regex已经有了lookahead 也许我根本不需要一个基于RegExp的解决方案?但我没有看到它 字符串匹配模式: I have too many dots....a

我有一些字符串意味着包含三个点…但有时它们一行只包含两个点,或者一行包含三个以上的点。我试图检测点太多或太少的字符串

此正则表达式有效,但仅适用于Chrome:
/(

其他浏览器的JavaScript RegExp引擎不支持lookbehind,从我所读到的内容来看,我不能重写它使lookbehind成为lookahead,因为regex已经有了lookahead

也许我根本不需要一个基于RegExp的解决方案?但我没有看到它

字符串匹配模式:

I have too many dots....and that's a problem
................
...Hey, that's not going to work..
Here's a big success ...and that's great!
0.30.
不匹配模式的字符串:

I have too many dots....and that's a problem
................
...Hey, that's not going to work..
Here's a big success ...and that's great!
0.30.

我认为你想得太多了。只需将2个点或更多点的所有位置作为目标,忘记不匹配
,因为这是你的替代品

替换:

var s=`我有太多的点……这是个问题
................
…嘿,那是行不通的。。
这是一个巨大的成功…这太棒了!
0.30.`
变量r=/\.{2,}/g

console.log(s.replace(r,“…”)
您是在执行替换过程还是只进行匹配?翻转此过程可能会简单得多,并且只匹配一行中包含3个点的字符串。您可以使用它吗?为什么不将所有2+点的实例替换为
例如:
\.{2,}
。我想你只是想得太多了。哦,对了。我不认为他是在搜索/替换,只是在验证?从问题上看不是100%确定。@因为我明白你的意思。我会等待OP的评论。如果我错误地认为这是一个简单的替换,我会删除我的答案,但我不明白为什么他们会试图匹配位置,而不是根据问题的主题/上下文替换字符。如果我想进行匹配,只是为了检查,它看起来像
s.replace(/\.{2,}/g,“…”)!==s
可以,是吗?我想这是我试图解决的一个相当小的问题,我很高兴有了这个简单的解决方案。@MartinBurch您可以使用回调函数来测试匹配是否等于替换。如果该测试是真的,您已经匹配了
。有关更多信息,请参阅