user2147283

WebSiteURLの検証方法

Discussion created by user2147283 on Jul 27, 2018

以下の WebSiteURL検証スクリプトを書いて見ました。

スクリプトトリガ設定は、該当フィールドの、OnObjectExit へ設定します。

 

 

他の方が書いたスクリプトもみてみたいので、アドバイスやツッコミをお待ちしてます。

 

#Last Updated: 2018/7/27

Creation Date: 2018/7/26 , Author: PgFlow YOUHEI SASAKI

PhoneNumber: 08059794102 , Email: youheisasaki@outlook.jp

 

#Filter_WebSiteURL.PgFlow Script Overview

・ダイアログで警告

フィールド値の先頭に "http://" または "https://" が含まれない場合

"http://" または "https://" 以降の文字の長さが4文字以内の場合

"http://" または "https://" 以降の文字に"."が一つ以上含まれない場合

 

・入力値から取り除きたいもの

テキストスタイル

改行

前後のスペース

入力テキストのスペース(空白文字)全て

 

・変換したい入力内容

入力テキストの全角英数字記号を半角英数字記号へ変換

 

【URLの形式】

https://ja.wikipedia.org/wiki/Uniform_Resource_Locator

 

http://ja.wikipedia.org/wiki/Wikipedia

スキーム(プロトコル名ではない)/ホスト名(ディレクトリ名を含む)/パス名

http://ja.wikipedia.org/wiki/Wikipedia」は典型的なURLの一例である。URLはこのような特徴的な形式の文字列であり、WWWが普及した今日にあっては頻繁に目にするものである。 上のURLは「ウィキペディア日本語版の中にあるウィキペディアについて説明している項目」というリソースを特定する。 スキーム名 httpはこのリソース(項目)を入手する為にはHTTPを使うべきであることを表す。 ja.wikipedia.orgはこのリソースが保管されているホストを表すホスト名である。 残りの/wiki/Wikipediaの部分は最終的にリソースを特定するための詳細である。ホストのファイルシステム内でのファイル名あるいはディレクトリ名に対応する場合が多いが、そうでない場合もある。 大まかに言えば、上のURLは「ja.wikipedia.orgというコンピュータに接続してHTTPの決まり事に従って/wiki/Wikipediaという名前のデータを要求すれば目的の物が手に入る」と読むことができる。 なお、httpの後のダブルスラッシュ //の2文字は有意義に使われる機会が少ない。2009年10月、URLの提案者であるティム・バーナーズ=リーは「できることなら取り除きたい」と発言している[3]。

 

#フィールド名を変数$FieldNameへ設定

変数を設定 [ $FieldName; 値:Get(アクティブフィールド名) ]

#フィールド値を変数$InputValueへ設定

変数を設定 [ $InputValue; 値:TextFormatRemove ( GetField ( Get(アクティブフィールド名 ) ) ) ]

#フィールド値から前後の空白と改行を取り除き、英数字を半角英数字へ変換し変数$FilterValueへ設定

変数を設定 [ $FilterValue; 値:TrimAll ( Substitute ( Trim ( $InputValue ) ; ¶ ; "") ; 3 ; 3 ) ]

#$URLErrorに"False"へ設定

変数を設定 [ $URLError; 値:"False" ]

#エラーメッセージを変数$ErrorMessageへ設定

変数を設定 [ $ErrorMessage; 値:" " & "は、'http://' または、'https://' で始まる URL を登録してください。¶(注意:改行は出来ません)" ]

 

#フィールド値の先頭に "http://" または "https://" が含まれている事を確認

If [ Left ( $FilterValue ; 7 ) = "http://" or Left ( $FilterValue ; 8 ) = "https://" ]

    変数を設定 [ $URLError; 値:"True" ]

    #"http://" または "https://" 以降の値を変数$URLValueHostPathへ設定

    変数を設定 [ $URLValueHostPath; 値:Case ( Left ( $FilterValue ; 7 ) = "http://" ; Left ( $FilterValue ; Length ( $FilterValue ) + 7 ) ; Left ( $FilterValue ; 8 ) = "https://" ; Left ( $FilterValue ; Length ( $FilterValue ) + 8 ) ; ) ]

Else

    変数を設定 [ $URLError; 値:"False" ]

End If

 

#フィールドに値が入っていない場合は、なにも行わない

If [ IsEmpty ( $InputValue ) ]

    #入力されたフィールド値とフィルター後の値が同じであること、URLの形式条件を満たしていることを確認

Else If [ Exact ( $InputValue ; $FilterValue ) and $URLError = "True" and Length ( $URLValueHostPath ) ≥ 4 and PatternCount ( $URLValueHostPath ; "." ) ≥ 1 ]

    #検証され書式を除いた値をフィールドへ設定

    フィールド設定 [ $FilterValue ]

    現在のスクリプト終了 [ 結果: True ]

Else

    #上記のチェックをパス出来ない場合、フィールド値の修正を求める

    カスタムダイアログを表示 [ タイトル: $FieldName; メッセージ: $InputValue & $ErrorMessage; デフォルトボタン: 「修正」, 確定: 「いいえ」 ]

    現在のスクリプト終了 [ 結果: False ]

End If

Outcomes