JavaScriptプログラムに関する各種メモ書き:タグ「正規表現」での検索

Javascriptでの正規表現

Javascriptでの正規表現マッチには .match を使用します。 Perlと同じように カッコで挟むと $1 に入ります。

こちらの RegExp.$1 は廃止予定です。

const file_name='http://www.test.com/aiueo/kakikukeko.gif';
alert(file_name);
const r = file_name.match(/([a-zA-Z0-9_.]+?)\.gif$/);
alert(r);
alert(RegExp.$1);

このように記述します

const file_name='http://www.test.com/aiueo/kakikukeko.gif';
const regexp = /([a-zA-Z0-9_.]+?)\.gif$/;
const r = regexp.exec(file_name);
console.log( r[1] );
No.556
07/20 17:39

edit

正規表現

JavaSriptで入力値のサニタイズ(PHPの htmlspecialchars()関数 )

JavaSriptで入力値のサニタイズを行いたい時があります。

まず PHPの htmlspecialchars() の互換関数 を作成します。

function htmlspecialchars(str) { 
	str = str.replace(/&/g,"&");
	str = str.replace(/"/g,""");
	str = str.replace(/'/g,"'");
	str = str.replace(/</g,"<");
	str = str.replace(/>/g,">");
    return str ;
}

htmlspecialchars()関数では対応できない文字を追加で変換する html_sanitize関数を作成します

function html_sanitize(str) { 
	str = str.replace(/;/g,"!___escape_semicolon___!");
	str = htmlspecialchars(str);
	str = str.replace(/!___escape_semicolon___!/g,"&#59;");
	str = str.replace(/\//g,"&#47;");
	str = str.replace(/\\/g,"&#92;");
	str = str.replace(/=/g,"&#61;");
	return str ;
}

使い方の例

var a = 'ABCDEFG\\=/<script>alert("XSS");';
var b = html_sanitize(a);
alert(a);
alert(b);
No.888
09/18 12:50

edit

正規表現

JavaScriptの正規表現で変数を使う

● JavaScriptの正規表現で変数を使う

JavaScriptの正規表現で変数を使うには

  • RegExp オブジェクト
  • lodash の escapeRegExp関数 を使用します。
// 検索文字列とチェックしたいターゲット
const expected = `/myurl?hoge=hoge`;
const target = `/myurl?hoge=hoge&data=aaa`;

// 特殊文字をエスケープ
const escapedExpectedUrl = _.escapeRegExp(expected)
console.log( '● escapedExpectedUrl' );
console.log( escapedExpectedUrl );

// 正規表現検索の実行
const re = new RegExp(escapedExpectedUrl)
const result = re.test(target)
console.log( result ); // true 
No.844
10/20 09:40

edit

正規表現

JavaScriptで半角カタカナを判別する

以下のようなコードを記述します。

var text = '半角カタカナです。';
if ( text.match(/[ア-ン゙゚]+/) ){
	alert('半角カタカナが使用されています');
}

No.691
08/06 21:48

edit

正規表現