動的スクリプト変数
動的変数は、ステートメントと論理式を実行することによって独自の値を計算します。 動的変数は、変数自身を計算または演算の結果に割り当てます。 動的変数型は、動的文字列、動的番号、および動的True / False(ブール値)です。
ユーザーインターフェイスでは、動的変数は他の変数タイプと区別するために稲妻の記号で示されています。 動的変数の値は、JavaScriptに似たステートメントの結果です。これには、選択したMath.js式と 追加機能 Genesysによって開発されました。 見る 算術演算子と関数、 MathJSのウェブサイト、そして 動的変数で使用できる追加機能。 動的変数の論理式は、他の変数の状態を評価することができます。
動的変数型ごとに式を埋め込むことができます。 これらのステートメントは、可能性のある他の変数に基づいて、変数の値を定義します。 結果動的変数の型と一致する必要があります。 たとえば、動的文字列内のコードは、文字列値に評価する必要があります。
math.add(1,3),
convert that to add(1,3)
in your dynamic variable. Or, if example code in the MathJS documentation is something like math.fraction(numerator, denominator)
, the equivalent dynamic number variable is the fraction(numerator, denominator)
part.動的変数への代入に関しては、明示的には行わないでください。最後に評価された値が動的変数に割り当てられます。 たとえば、動的変数としてこれらの式を入力します。
x = 5; y = x + 2; x
3つの式すべてがトップダウンの順序で評価されます。 最後の式の値は、動的変数に割り当てられます。 この例では、x は、動的変数に割り当てられている 5 の値を持ちます。
例1 動的な数値を使用して、フォームでユーザーの入力値を計算する
この例では、動的数値変数はフォームに入力された複数の値の結果を計算します。
デザインモードでは、入力ボックスの垂直方向のスタックがユーザー入力を促します。
In preview mode or at run time, values entered on the form are calculated by statements in the dNum_TestNum
variable, and the result is shown.
The dNum_TestNum
variable contains the formula that performs this calculation:
{{num_var1}} + {{num_var2}} - {{num_var3}} * {{num_var4}} / {{Num_TestNum}} + 2.1
上記の値の場合、計算は次のようになります。
10 + 10 - 4 * 2 / 2 + 2.1
計算が使用する変数の1つが変更されるたびに計算が実行されます。
In the example shown, the result stored in dNum_TestNum
is 18.1.
例2 数値変数が一致するかどうかを判断するには、動的True / False(ブール値)を使用します。
In this example, a dynamic Boolean variable returns true
if numeric inputs match or false
if they don’t match.
デザイン モードで、ページは、数字の変数に保存されている値を持つ 2 つの数字入力を示しています。 動的ブール値のコードはこれらの値が等しいかどうかを比較します。
プレビューモードまたは実行時に、フォームに入力された値が等しいかどうか比較されます。
The formula in dBool_Basic
is:
{{num_dBoolTest}} == {{num_dBoolTest2}}
For the values shown, the value of dBool_Basic
is false
since 2 does not equal 1.
どちらかの入力変数の値が変わるたびに結果が計算されます。
例3 文字列操作の概要
In the next two examples, dynamic string variables parse and rewrite user input. An expression in the dStr_Exp
variable rewrites text typed by the user to “This is fun.” An expression in dStr_Test
inverts case when a check box changes state.
Text input by the user is stored in str_overwrite
. Below that is dynamic variable dStr_Exp
performing this expression:
slice("This is fun.", 0 ,length({{str_overwrite}}))
In preview mode or at runtime, any text typed is reworded. The string is rewritten when the value of str_overwrite
changes.
The Swap Lower and Upper check box toggles the case of dStr_Test
. Its formula is:
ifElse({{bool_swapLowerUpper}} == false, lower(slice({{str_HELLO worlds}}, 0, length({{str_HELLO worlds}})-6)) + " " + upper(slice({{str_HELLO worlds}}, length({{str_HELLO worlds}})-6)), upper(slice({{str_HELLO worlds}}, 0, length({{str_HELLO worlds}})-6)) + " " + lower(slice({{str_HELLO worlds}}, length({{str_HELLO worlds}})-6)))
チェックボックスをオンにすると、文字列の大文字と小文字が区別されます。
例4. 正規表現を使って文字列と数値を検証する
In this example, a dynamic Boolean variable returns true
if the string input matches the provided regex:
The regex used here is ^\\d{1,4}$:
– the core regex is \d{1,4}
(between one and four digits): the slash is doubled (escaped) because it is a JavaScript string, and it is wrapped in ^
and $
to apply the pattern to the whole strings: by default, partial matches are allowed so without this wrapping, 12345 would pass because of the partial match “1234”.
正規表現とそのデバッグの詳細については、Regexr を参照してください。