Why not login to Qiita and try out its useful features?

We'll deliver articles that match you.

You can read useful information later.

1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

国際電話番号に適合した電話番号が入力できる入力文字変換処理を作成する

Posted at

クリアしたい課題!

国際電話番号もしくは日本の電話番号の入力を可能にしつつ、不要な文字は入力できないような入力文字変換処理を作りたい!

今回扱わない話題

実務で使用するためにはバリデーションとセットで使用する必要があると思うが、バリデーション部分は扱わない。

やってみた

<script>  
    let value = '';  
  
    const convertToTel = (value) => {  
        // 全角文字の場合は半角にする  
        value = value.replace(/[0-9]/g, (s) => {  
            return String.fromCharCode(s.charCodeAt(0) - 65248);  
        });  

			  // 数字もしくは+以外は空文字変換する
        value = value.replace(/^[^0-9+]/, '');  
  
        // 最初の1文字が+または数字であることを確認  
        if (/^[+0-9]/.test(value)) {  
            // 最初の1文字を保持し、それ以外の非数字文字を削除  
            const firstChar = value.charAt(0);  
            const rest = value.slice(1).replace(/\D+/g, '');  
            return firstChar + rest;  
        }  
        return value;  
    };  
  
    $: value = convertToTel(value);  
</script>  
  
<h1>電話番号を入力して下さい!</h1>  
<input type="tel" bind:value={value} />  
<p>{value}</p>  

デモ

まとめ

汎用的に使用できそうなロジックなので、記事にまとめてみた。
国際電話番号はなかなか馴染みがないので、記憶に残っていた実装でもある。

1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
yamii

@yamii(yamii)

PHPとAIが好きな日本人です
macloud
M&Aクラウドは「テクノロジーの力で、M&Aに流通革命を」をミッションにM&Aプラットフォーム「M&Aクラウド」を開発運営するスタートアップです。
Linked from these articles

Comments

ffngud588
@ffngud588
const convertToTel = str => {
  const s = str
    .replace(/[0-9]/g, m => '0123456789'.indexOf(m))
    .replace(/^[^\d+]/, '');
  return s[0] + s.slice(1).replace(/\D/g, '');
};
0

Let's comment your feelings that are more than good

Qiita Advent Calendar is held!

Qiita Advent Calendar is an article posting event where you post articles by filling a calendar 🎅

Some calendars come with gifts and some gifts are drawn from all calendars 👀

Please tie the article to your calendar and let's enjoy Christmas together!

Being held Article posting campaign

1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Login to continue?

Login or Sign up with social account

Login or Sign up with your email address