javascript 文字列を除去する
- 作成日 2020.11.18
- 更新日 2022.07.22
- javascript
- javascript
javascriptで、replaceメソッドを使用して、指定した文字列を除去するサンプルコードを記述してます。
環境
- OS windows10 pro 64bit
- Apache 2.4.43
- ブラウザ chrome 103.0.5060.114
replaceメソッド使い方
「replace」メソッドを使用すると、正規表現を使用して、指定した文字を除去(空に置換)することが可能です。
let result = str.replace( /除去したい文字列/g , '' ) ;
「replace」メソッド使い方
let str = 'mebee';
let result = str.replace( /e/g , '' ) ;
console.log(result); // mb
str = 'mebee';
result = str.replace( /me/g , '' ) ;
console.log(result); // bee
存在しない文字を指定してもエラーにはなりません。
let str = 'mebee';
let result = str.replace( /ab/g , '' ) ;
console.log(result); // mebee
「RegExp」を使用して、置換しても同様の結果が得られます。
let str = 'mebee';
let result = str.replace(new RegExp('e','g'), '');
console.log(result); // mb
// こちらも存在しない値を指定してもエラーにならない
str = 'mebee';
result = str.replace(new RegExp('ab','g'), '');
console.log(result); // mebee
100万回ずつ実行してみた結果は「replace」で「正規表現」を使用した方が、少しパフォーマンスは良さそうです。
実行回数:1000000回 関数名:正規表現 実行時間:111(ms)
実行回数:1000000回 関数名:RegExp 実行時間:180(ms)
splitとjoin
「split」で一度指定した文字列を配列の区切り文字として、「join」で配列化することでも文字列の除去は可能です。
let str = 'mebee';
let result = str.split('e').join('') ;
console.log(result); // mb
str = 'mebee';
result = str.split('me').join('');
console.log(result); // bee
str = 'mebee';
result = str.split('ab').join('');
console.log(result); // mebee
サンプルコード
以下は、
「除去」ボタンをクリックすると、文字列「mebee」からフォームに入力された文字列を除去して表示する
サンプルコードとなります。
※cssには「bootstrap material」を使用してます。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>mebeeサンプル</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700|Material+Icons">
<link rel="stylesheet"
href="https://unpkg.com/bootstrap-material-design@4.1.1/dist/css/bootstrap-material-design.min.css">
</head>
<style>
.main {
margin: 0 auto;
margin-top: 200px;
display: flex;
flex-direction: column;
align-items: center;
font-size: 30px;
}
</style>
<script>
function hoge() {
// フォームの値を取得
let str = document.getElementById('str').value;
// 除去される前の文字列を取得
let mebee =document.getElementsByClassName('badge')[0].textContent;
// フォームから入力された文字列を除去
let result = mebee.replace(new RegExp(str,'g'), '');
// 表示
document.getElementsByClassName('badge')[1].textContent = (result);
}
// クリックイベントの設定
window.onload = function () {
// ボタンを取得
let elm = document.getElementById('btn');
// クリックイベントを登録
elm.onclick = function () {
hoge();
};
}
</script>
<body>
<div class="main">
<h2 class="badge badge-primary">mebee</h2>
<h2 class="badge badge-primary">除去後の文字列</h2>
<div class="form-group">
<label for="str" class="bmd-label-floating">除去する文字列</label>
<input id="str" type="text" class="form-control">
</div>
<button id="btn" type="button" class="btn btn-raised btn-danger">
除去
</button>
</div>
</body>
</html>
文字列が除去されていることが確認できます。
-
前の記事
python 現在時刻のUNIX時間(エポック秒)を取得する 2020.11.18
-
次の記事
C# カレントディレクトリを取得する 2020.11.18
コメントを書く