RegExp:在JavaScript中的某个匹配项后删除字符

时间:2017-05-10 03:13:44

标签: javascript regex

我想删除网址中/blog/之后的所有内容,这里是输入:

http://domain-name.com/blog/a-blog-title

输出应该是:

http://domain-name.com/blog/

我的正则表达式为\/blog\/.*,但这也可以删除/blog/。显然我不想要这个。有没有特定的方法来删除字符而忽略匹配的部分?提前谢谢。

3 个答案:

答案 0 :(得分:4)

有几种方法可以做到这一点。这是一个:

var output = "http://domain-name.com/blog/a-blog-title".replace(/\/blog\/.*/, "/blog/")

console.log(output)

也就是说,匹配你想要保留的位和想要丢弃的位,但要替换为你要保留的位而不是空字符串。

您可以通过在正则表达式中引入捕获括号来使替换字符串更通用:

var output = "http://domain-name.com/blog/a-blog-title".replace(/(\/blog\/).*/, "$1")

console.log(output)

答案 1 :(得分:2)

如果输入字符串的结构一致,则可以避免使用正则表达式,只需使用substring()lastIndexOf()

var str='http://domain-name.com/blog/a-blog-title';
console.log(str.substring(0,str.lastIndexOf("/")+1));

如果您的网址字符串 的结构不同(包括查询字符串或其他内容),请更新您的问题以便清晰。

答案 2 :(得分:0)

试试这个辅助功能:

body

结果:

Ali 

M*59*AB

John

M*68*B

Shirley

F*35*B

Peter

M*88*A

Fiona

F*55*O

Mary

F*46*B