こんにちは。ティーマネジメントの田中です。
こちらは前回記事の続きとなります。
前回記事でご紹介した、正規表現をFileMakerで扱う方法について紹介します。
FileMakerで正規表現を使用する
FileMaker Pro 2023時点では、正規表現を利用できる関数は実装されていません。
代わりに、WebViewer機能と、JavaScriptを用いて計算を行います。
住所から都道府県を抜き出す 準備
FileMaker Pro側で、抜き出すための準備を行います。
1. レイアウト上にWebビューアを配置する
2. 住所が入っているテキストフィールドを用意する
3. 結果を格納するフィールドを用意する
Webビューアのアドレス部分は空欄にしておきます。
では、スクリプトを記述していきます。
スクリプトでは次のことを行います。
1. JavaScript関数を作成する
2. Webビューアで関数を実行させる
JavaScriptで正規表現に一致する結果を受け取るには、matchメソッドを使用します。
「テキストを挿入」スクリプトステップでJavaScript関数を作成します。
下記のテキストを、変数「$function」に代入します。
(function (text){
const regex = ".{2,3}[都道府県]";
FileMaker.PerformScript("結果の格納" , text.match(regex) );
})
「text」は、関数の引数です。
「regex」が今回、都道府県名の一致に使用する正規表現になります。
「任意の2~3文字の後に、[都道府県]のいずれか1文字が続く」場合に一致します。
「FileMaker.PerformScript」は、「結果の格納」というFileMakerのスクリプトを、
textからregexにマッチした文字を引数として実行する、ということになります。
「結果の格納」というFileMakerスクリプトは、JavaScriptから呼び出されますので、
次のように設定します。
フィールド設定の1ステップのみで問題ありません。
WebビューアでJavaScriptを実行 ステップでは、次のようにオプションを設定します。
オブジェクト名にはWebビューアのオブジェクト名を指定します。
関数名は先ほど作成した変数$function、
引数には元のテキストを指定します。今回は元のテキストには住所が入っています。
住所から都道府県を抜き出す 実行
元のテキストにはサンプルとして、住所を記載しました。
スクリプトを実行して結果を確認してみます。
実行↓
テキストから都道府県名だけ抜き出されています。
次に、都道府県名を複数入れてテストをしてみます。
実行↓
最初に一致した、「東京都」が抜き出されています。
matchメソッドでは最初に一致したものが返されます。
まとめ
正規表現を知ると、1つの記述で様々な文字列と一致させることができるため、
スクリプトで行えることの幅が広がります。
私もまだまだ学習中ですが、何かやりたい処理のヒントになれば幸いです。 前の記事へ → FileMakerで正規表現を使う 1/2