我想在以前缀开头的句子中找到单词,并删除其余字符。
示例:
此句子Type_123
包含一个Type_uiy
我想删除 Type 之后的字符,以便拥有:
此句子Type
包含一个Type
我知道我该如何使用正则表达式str.replace(/Type_/g,'')
删除前缀,但是我该如何执行相反的操作?
NB 如果可能,请在ES6之前的版本中使用js
答案 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_"