微信小程式路徑表示式解析規則

2022-07-05 03:51:27 字數 1555 閱讀 3148

小程式setdata方法支援路徑表示式來設定屬性,例如setdata()

小程式的路徑表示式基本操作符包括物件屬性訪問符.和陣列成員訪問符

例如:當物件屬性訪問符和陣列成員訪問符連在一起時,可以省略書寫屬性訪問符。

陣列關閉符與屬性訪問符在特殊情況下省略屬性訪問符會產生歧義,參見下文「路徑表示式解析奇葩規則」。

例如:a.[0].b等同於a[0]b

每個單獨的陣列關閉符號]都會生成新的陣列,而所有單獨的陣列關閉符號之間的字串(不包含屬性訪問符.)將被提取出來拼接成乙個屬性名稱。

當單獨陣列關閉符號中間包含屬性訪問符時,優先解析屬性訪問符。

合法路徑及其解析結果:

原路徑解析結果

"x""x",

"x.y.z"

"x.y.z",

"1.2"

"1.2",

"x.y.[2][12]xy.z"

"x.y[2][12]xy.z",

"x.y[11.11]z"

"x.y[1111]z",

"x.y[.11.]z"

"x.y[11]z",

"x[1111"

"x",

"x[1[2]23"

"x[12]23",

"x[1][2]]]]y"

"x[1][2][0][0][0]y",

"x[1].[.[.[2]]]]y"

"x[1][2][0][0][0]y",

"x[1]23]4]5]6]y"

"x[1][0][0][0][0]23456y",

"x[1]23]4]5x ]6]"

"x[1][0][0][0][0]2345x 6",

"x[1]23]4]5]6].y"

"x[1][0][0][0][0]23456.y",

"b[1]2].a3].x"

"b[1][0]2[0]a3.x"

非法路徑及其非法原因:

原路徑非法原因

""空字串非法

"[1]x"

陣列開頭非法

"x]][0]"

第乙個]出現在第乙個[之前

"x[a]"

陣列中只能包含數字

"x[abc"

未關閉陣列符號,且緊跟非數字

"x"存在空陣列符號

"x[-1]"

陣列中只能包含數字

"x[ 1]"

陣列中只能包含數字

"x[.]"

陣列中的句號會被刪除,導致存在空陣列

"x[1 1]"

陣列中只能包含數字

"x[ ]"

陣列中只能包含數字

小程式路徑表示式解析方案具體實現及測試參見 miniprogrampatch

微信小程式正規表示式擷取 微信小程式之正規表示式

手機號碼驗證 if 13 0 9 14 0 9 15 0 9 17 0 9 18 0 9 d test 你要驗證的手機號 test 你要驗證的郵箱 身份證驗證 if d d d d x x test 你要驗證的身份證 可借鑑表示式 驗證數字的正規表示式集 驗證數字 0 9 驗證n位的數字 d 驗證至...

微信小程式之正規表示式(完整版)

手機號碼驗證 if 13 0 9 14 0 9 15 0 9 17 0 9 18 0 9 d test 你要驗證的手機號 郵箱驗證 if a za z0 9 a za z0 9 a za z0 9 a za z0 9 test 你要驗證的郵箱 中英文姓名驗證 沒有長度限制,考慮到少數名族和外國人名字...

微信小程式 富文字解析

把wxparse放在與page同一級目錄 wxparse裡的emojis包是可要可不要的。1 在wxml中 src wxparse wxparse.wxml class wxparse is wxparse data view 2 在wxss中 import wxparse wxparse.wxss...