正規表現について
Q&A
Closed
解決したいこと
JavaScriptにおいて以下の要件を満たす正規表現について教えていただきたいです。
- 与えられた文字列の先頭文字が'S'の場合は2文字目以降の文字列を抽出。
- 与えられた文字列の先頭文字が'SS'など重複していた場合でも2文字目以降を抽出。
- 与えられた文字列の先頭文字が'S'でない場合はそのまま文字列全体を抽出。
特に要件の1と3が両立できずに困っております。
以下例のように処理したいです。
(例)
SFGA123456 → FGA123456
SFGA92ASB4 → FGA92ASB4
SSHJ6S85BC → SHJ6S85BC
ABC1234567 → ABC1234567
背景
Bubble.ioというノーコードプラットフォームでバーコードを読み取るWebアプリケーションを作成中、
対象のバーコードによって行頭に余計な符号「S」が付いたり付かなかったりすることが分かりました。
これではDB上でデータの整合性が取れませんので、
Inputボックスに入力された値を正規表現でチェックし必要部分のみ抽出するというアクションをはさむため上記質問に至りました。
JavaScriptでIFやsubstrすればシンプルで早いのはもちろんなのですが、
ノーコードプラットフォームである以上Bubble.io側のChangeイベントと競合すると2重登録などが発生する可能性も考えられるので、Bubble.ioの標準機能としての正規表現による文字列処理で解決する流れで考えております。
もしお分かりの方いらっしゃいましたらご回答いただければ幸いです。