66852
JavaScriptを用いてHTMLを書き換えたいです。  
特定の文章から正規表現を用いて、特定の文字列を取得後、HTMLを追加する事は可能でしょうか？  
UserScriptと同じくページ読み込み後に実行させます。

この様なページがあったとして

```

    <a href="jump/ad/dsa/">NEWS 20200522 ほげほげほげ1</a>
    <a href="jump/ad/fsd/">NEWS 20200430 ほげほげほげ2</a>
    <a href="jump/ad/htr/">NEWS 20200310 ほげほげほげ3</a>
    <a href="jump/ad/ahr/">NEWS 20200212 ほげほげほげ4</a>
    
```

> NEWS 20200522 ほげほげほげ1  
>  NEWS 20200430 ほげほげほげ2  
>  NEWS 20200310 ほげほげほげ3  
>  NEWS 20200212 ほげほげほげ4

↓ JavaScriptを用いて以下の様に書き換えたいです。

```

    <a href="jump/ad/dsa/">NEWS 20200522 ほげほげほげ1</a><a href="nojump/news/20200522/"> [JUMP]</a>
    <a href="jump/ad/fsd/">NEWS 20200430 ほげほげほげ2</a><a href="nojump/news/20200430/"> [JUMP]</a>
    <a href="jump/ad/htr/">NEWS 20200310 ほげほげほげ3</a><a href="nojump/news/20200310/"> [JUMP]</a>
    <a href="jump/ad/ahr/">NEWS 20200212 ほげほげほげ4</a><a href="nojump/news/20200212/"> [JUMP]</a>
    
```

> NEWS 20200522 ほげほげほげ1 [JUMP]  
>  NEWS 20200430 ほげほげほげ2 [JUMP]  
>  NEWS 20200310 ほげほげほげ3 [JUMP]  
>  NEWS 20200212 ほげほげほげ4 [JUMP]

初心者ながらの知識で考えてはみたのですが

```

    var NEWSTITLE = ???
    var NEWSID = NEWSTITLE.replace(/NEWS\s(\d+?)\s.*$/g, "$1");
    jQuery("a:contains('NEWS')").after('<a href="nojump/news/' + NEWSID + '/">JUMP</a>');
    
```

ここが限界でした。助力頂けると幸いです。
CC BY-SA 4.0
2020-05-21T19:06:08.133
66849
2020-05-22T04:17:52.453
2020-05-22T00:41:17.993
3060
31483
question
javascript 正規表現
JavaScriptでHTMLを書き換えたいです。
こんにちは、jQueryを使うのであれば以下のように出来ると思います。

```

    $("a:contains('NEWS')").each(function (i) {
        var txt = $(this).text().trim();
        var id = txt.split(/\s+/)[1];
        var a = $("<a href='nojump/news/" + id + "/'>[JUMP]</a>");
        $(this).after(a);
    });
```

```

    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    
    <a href="jump/ad/dsa/">NEWS 20200522 ほげほげほげ1</a>
    <a href="jump/ad/fsd/">NEWS 20200430 ほげほげほげ2</a>
    <a href="jump/ad/htr/">NEWS 20200310 ほげほげほげ3</a>
    <a href="jump/ad/ahr/">NEWS 20200212 ほげほげほげ4</a>
```
CC BY-SA 4.0
2020-05-21T23:05:25.080
66852
2020-05-22T04:17:52.453
2020-05-22T04:17:52.453
3068
37240
66849
answer