幫手,這裏是我的挑戰:上找到的值由一個eval更換jQuery的正則表達式匹配
情況:(簡化的例子)
我有一個字符串,其中有不同的「參數」標有一定的語法,這取決於它的「類型」,這裏的「#和‘[...]’:
myString = "There are still #numberOfDays days until Christmas and it is already colder than #temperature degrees! I also have still have to buy [nrOfPresents] Christmas presents."
我有我的參數映射到值也是不同的方法,無論是直接值或具體公式:
myDict1 = {"numberOfDays" : 30, "temperature": -10, ...}; myDict2 = {nrOfPresents: "nrOfFriendsAndFamily - boughtPresents", ...};
問:
有沒有一種方法,對於每個參數類型的正則表達式選擇各參數,並與這需要一個函數的返回值來代替它找到的表達式作爲輸入?
到目前爲止我得到了: machesForType1 = myString.match(/#[A-Za-z]*(\b)/g)
,但這隻能給我比賽。
我想用類似mySting.replace(/#[A-Za-z]*(\b)/g , computeParameterFromArrayInfo([Whatever you find by using this regex expression here]))
任何想法?
PS:不同參數的數量相當高,因此對每個參數單獨評估並不是真正的選擇。
難道你不會碰到你的字符串實際上需要這些標記之一的衝突嗎?他們相當普遍。 E.G'myString =「電話號碼是#phoneNumber」'?你有沒有看過Angular? – bassxzero
我猜想,只要我確定,用標記,我只把它們當作字符串,不應該有任何衝突。你可能有更好的想法來標記可替換的東西嗎? – elior
Angular2有一個相當廣泛的表情電梯,但它可能不是你要找的。 – bassxzero