use*_*811 0 javascript regex slug
我已经看到以下问题正则表达式删除一个特定的重复字符,这个字符与我的非常相似(如果不准确),但它是用C#实现的,并使用该语言的字符串方法.
我想知道是否有人可以提出javascript它的实施?
如果你有例子
what---is-your-name- => what-is-your-name
---what-is----your-name-- => what-is-your-name
Run Code Online (Sandbox Code Playgroud)
那么如何删除特定字符的重现,在这种情况下-,用-javascript中的一个替换它?
一举一动:
str.replace(/^-+|-+(?=-|$)/g, '')
Run Code Online (Sandbox Code Playgroud)
解释:
(?=..)是一个先行的断言和后面的手段.它只是一个检查,不是匹配结果的一部分.
关于-+(?=-|$):
由于量词是贪婪的,默认情况下-+匹配-字符串的一部分,然后测试前瞻:两种可能的情况
I.部分位于字符串的中间: hello-----world
因为w前瞻失败后只有一个,正则表达式引擎返回一个字符.现在-+只匹配四个-,后面是a -,前瞻性的成功.由于它不是匹配的一部分,-因此替换功能不会删除最后一个.
II.该部分位于字符串的末尾:world-----
-+匹配所有-直到字符串结束和前瞻断言成功的第二部分.所有-都被替换功能删除.
| 归档时间: |
|
| 查看次数: |
508 次 |
| 最近记录: |