61314


末尾の0でない0を削除したいのですが、`/[^0$]0/` こうすると0と直前の文字を削除してしまいます。`/^(?!0$)0/`
こちらも試しましたが、マッチしませんでした。

[code]

    '12/09'.replace(/[^0$]0/, '') // この場合は0を削除したい
    '12/10'.replace(/[^0$]0/, '') // この場合はしたくない
    
    replace(/^(?!0$)0/, '')
    
[/code]

ご教示いただければ幸いです。


CC BY-SA 4.0
2019-12-10T14:22:44.350
61311
2019-12-18T17:17:45.733
2019-12-18T17:17:45.733
3060
32180
question
javascript 正規表現
正規表現で "月日" を表す文字列から末尾以外の0を削除したい


こういうこと？

[code]

    '12/01'.replace(/\b0+/, '')
    
[/code]


CC BY-SA 4.0
2019-12-10T14:44:22.737
61312
2019-12-10T14:44:22.737
62
61311
answer


これで動きますか？

[code]

    '12/09'.replace(/^(.+\/)0+(\d+)$/, '$1$2')
    
[/code]


CC BY-SA 4.0
2019-12-10T14:49:07.717
61313
2019-12-10T14:49:07.717
37016
61311
answer


月日を表す文字列の日付部分だけ、一桁の数なら二桁目の `0` を消したいということでしょうか。

であれば、`/` の直後が `0` であれば `0` を削除すれば良さそうです。

[code]

    '12/09'.replace(/\/0/, '/');  // ==> '12/9'
    '12/10'.replace(/\/0/, '/');  // ==> '12/10'
    '01/02'.replace(/\/0/, '/');  // ==> '01/2'
    
[/code]

月の部分も消したいのであれば、数字部分を認識して上桁のゼロを消すのはどうでしょうか。

[code]

    '12/09'.replace(/0+(?=[0-9])/g, '');  // ==> '12/9'
    '12/10'.replace(/0+(?=[0-9])/g, '');  // ==> '12/10'
    '01/02'.replace(/0+(?=[0-9])/g, '');  // ==> '1/2'
    
[/code]

# この正規表現を別の目的で使いたい方へ：このままだと `1001` は `11` になるので注意してください。


CC BY-SA 4.0
2019-12-10T14:50:29.103
61314
2019-12-10T17:11:31.280
2019-12-10T17:11:31.280
19110
19110
61311
answer


日付を表す文字列の月と日から先頭の `0` を取り除く場合は、以下の様な方法も考えられます。

[code]

    (new Date('12/09')).toLocaleDateString().slice(5,)
    => 12/9
    (new Date('12/10')).toLocaleDateString().slice(5,)
    => 12/10
    (new Date('01/01')).toLocaleDateString().slice(5,)
    => 1/1
    
[/code]


CC BY-SA 4.0
2019-12-10T15:10:45.053
61315
2019-12-10T15:10:45.053
61311
answer