Javascriptでの正規表現マッチには .match を使用します。 Perlと同じように カッコで挟むと $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] );
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,";"); str = str.replace(/\//g,"/"); str = str.replace(/\\/g,"\"); str = str.replace(/=/g,"="); return str ; }
var a = 'ABCDEFG\\=/<script>alert("XSS");'; var b = html_sanitize(a); alert(a); alert(b);
JavaScriptの正規表現で変数を使うには以下の様に RegExp オブジェクトを宣言してから使用します。
// 後ろに(test.jpg)がつく文字列(例:Atest.jpg , Btest.jpg , 1_test.jpg)を検索したい場合 var file_name ='test.jpg'; // 検索したいファイル名 // ↓ これは次の正規表現と同じになります /(.+)test¥.jpg$/i var re = new RegExp( '(.+)'+ file_name + '$', "i"); var hogehoge = URL.replace(re,''); // replace(置換)
以下のようなコードを記述します。
var text = '半角カタカナです。'; if ( text.match(/[ア-ン゙゚]+/) ){ alert('半角カタカナが使用されています'); }