Javascript / jQuery删除字符串中的所有字符,除了特定字符之间的出现

时间:2016-02-02 16:58:26

标签: javascript jquery regex

使用efvss 3452 XT-123454 ghhs444d efvss XT-6336 ghhsd efq435vss XT-554 ghhsd efvss XT-23427 ghhs55d efvss XT-24作为示例字符串我想删除除包含XT-number的部分之外的所有字符(例如XT-123454)。

我有这个代码(它不会返回我正在寻找的内容):

$(document).ready(function(){
    string = "efvss 3452 XT-123454 ghhs444d efvss XT-6336 ghhsd efq435vss XT-554 ghhsd efvss XT-23427 ghhs55d efvss XT-24";
    string = string.match(/(XT-)(.*)(\s)/g);
    document.write(string);
});

所需的输出应为XT-123454, XT-554, XT-23427, XT-24

2 个答案:

答案 0 :(得分:2)

您可以使用正则表达式匹配字符串的所有XT-##部分。

var str = 'efvss XT-123454 ghhsd efvss XT-6336 ghhsd efvss XT-554 ghhsd efvss XT-23427 ghhsd efvss XT-24';
var regex = /\bXT-\d+\b/g;
var matches = str.match(regex);
< ["XT-123454", "XT-6336", "XT-554", "XT-23427", "XT-24"]

要仅使用您想要使用的部分重新创建字符串.join()

var finalString = matches.join(' ');
< "XT-123454 XT-6336 XT-554 XT-23427 XT-24"

答案 1 :(得分:0)

$(document).ready(function(){
    string = "efvss XT-123454 ghhsd efvss XT-6336 ghhsd efvss XT-554 ghhsd efvss XT-23427 ghhsd efvss XT-24";
    string = string.match(/(XT-)[0-9]{0,11}/g);
    document.write(string);
});

您可以将上述代码用于所需的输出 https://jsfiddle.net/ygpzq4hj/