js如何處理正規表示式中匹配的內容

2022-07-19 08:45:17 字數 758 閱讀 6871

有時候需要實現乙個功能,使得資料以不同的方式顯示,好像有點說不清楚,舉個例子吧。

比如:給定乙個包含了所有課程的資料,在a頁面上是一種排版方式,在b頁面上是另外一種排版方式,這時候可以採用模板的方式將資料渲染到頁面上。但是這就涉及到乙個模板的建立和解析的問題。

我這裡自定義了在html標籤中嵌入變數的方式是這樣的:

,等渲染到頁面時,將{}所包含的變數轉換為具體的值,這樣就可以簡單實現模板解析的過程。那如何將其中的變數轉換為實際值呢?一種簡易的方式是通過正規表示式,將變為list,然後再對其賦值。具體方法如下:

1

var template = '

';  

2var result = template.replace(//g, "$1"});

這樣便可得到list

,但是渲染到頁面後,發現頁面只是原封不動地顯示'list'字串,而並未將list變成實際值,即沒有將其當作變數看待。也許你會想到用eval("$1")方法來將其轉化為變數,但是會發現瀏覽器會報錯說,$1未定義,是因為它會誤認為$1為變數,但實際上不是。那該怎麼辦呢?通過替換成函式即可,具體如下:

1

var result = template.replace(//g, function(val, replacement) );

若想對匹配的值做些額外的處理,可以採取這種方式,將處理的過程寫到function裡,val是被匹配的值,replacement則是匹配、替換的值,處理過後,直接返回想要的值就好了。

正規表示式如何處理巢狀結構

1,正規表示式如何處理巢狀結構 a.net處理巢狀結構的方法 舉例說明 問題描述 從before nope yes here okay after中匹配得到最大的被 包含的文字。即顯示紅色的部分。答案 net depth 分析 1 匹配左括號 匹配右括號 匹配非括號字串 2 固化分組,固化分組的作用...

js 正規表示式匹配中文

簡單匹配中文方法 u0000 u00ff 匹配非單位元組字元 另錯誤方法 u00 uff 匹配 非單位元組字元 還包括一些全半形符號如,等 還有vwxyz字元 說明 u0000 u00ff.包含unicode單位元組編碼 0 255編碼 包含基本控制字元和拉丁文本母。採用該否定表示式,粗略判斷是否含...

JS 正規表示式匹配獲取

表示轉義字元 表示乙個任意字元 表示字元個數 表示字元個數 表示開始與結束 表示非 d表示 1個數字 w 表示乙個字元 不包含中文 s 表示乙個空白字元 表示優先順序,提取組 表示或 方式一 var regobj new regexp d 方式二 var regobj d 推薦使用第二種方式,這種方...