使用Javascript从字符串中删除单词的一部分

时间:2018-10-03 14:11:18

标签: javascript regex

我想在以前缀开头的句子中找到单词,并删除其余字符。

示例:

此句子Type_123包含一个Type_uiy

我想删除 Type 之后的字符,以便拥有:

此句子Type包含一个Type

我知道我该如何使用正则表达式str.replace(/Type_/g,'')删除前缀,但是我该如何执行相反的操作?

NB 如果可能,请在ES6之前的版本中使用js

2 个答案:

答案 0 :(得分:3)

使用表达式\b(Type)\w+捕获 Type 前缀。

说明:

\b     | Match a word boundary (beginning of word)
(Type) | Capture the word "Type"
\w+    | Match one or more word characters, including an underscore

var str = 'this sentence Type_123 contains a Type_uiy';
var regex = /\b(Type)\w+/g;

console.log(str.replace(regex, '$1'));

$1方法中的replace()是对捕获的字符的引用。在这种情况下,$1代表Type。因此,句子中的任何地方, Type_xxx 都将替换为 Type

有关replace()方法的MDN的documentation

答案 1 :(得分:-1)

安装:https://github.com/icodeforlove/string-saw

let str = "Here's a sentence that contains Type_123 and Type_uiy";
let result = saw(str)
    .remove(/(?<=Type_)\w+/g)
    .toString();

以上结果将导致:

"Here's a sentence that contains Type_ and Type_"