正則表達(dá)式不區(qū)分大小寫以及解決思路的探索
來源:易賢網(wǎng) 閱讀:865 次 日期:2014-08-04 17:53:00
溫馨提示:易賢網(wǎng)小編為您整理了“正則表達(dá)式不區(qū)分大小寫以及解決思路的探索”,方便廣大網(wǎng)友查閱!

今天遇見一個(gè)消除js正則表達(dá)式不區(qū)分大小寫的問題,網(wǎng)上一搜,發(fā)現(xiàn)自己果然是菜鳥。

在js里面//g,其中g(shù)表示全局匹配,如果沒有這個(gè),那么就意味著只能匹配一次就會自動結(jié)束;/i/就表示在匹配的過程中不區(qū)分大小寫。呵呵。。這個(gè)在參數(shù)過濾的過程中就很有用了。

代碼如下:

dxycode=dxycode.replace(/<br\s*\/?>/gi,'\n')

都說到這個(gè)份上了,自然情不自禁的看了一下.NET中的正則表達(dá)式不區(qū)分大小寫的情況。在.NET中,RegexOption枚舉可以使用影響匹配行為的選項(xiàng)修改正則表達(dá)式模式。比如其中的IngoreCase就是匹配過程中忽略大小寫的限定。附上代碼如下:

Regex.Match (String, String, RegexOptions);

Regex.Replace (String, String, String, RegexOptions)

正則表達(dá)式其實(shí)是一個(gè)很有趣的事情,但是不因正而正則。下面描述一下我今天碰到的問題。

大家可能都會遇到這樣的問題,在進(jìn)行ajax的傳輸后,利用javascript綁定數(shù)據(jù)的時(shí)候,經(jīng)常因?yàn)樽⑷霅阂饽_本、html標(biāo)簽未關(guān)閉等問題導(dǎo)致頁面錯版和被別人腳本惡意注入。這個(gè)時(shí)候的我們想到的第一個(gè)解決辦法是:將所有標(biāo)簽全部轉(zhuǎn)換成實(shí)體。這樣頁面既不會被惡意腳本注入,又不會出現(xiàn)錯版情況。 很好,這是一種解決途徑,畢竟菜鳥開始想問題了。但是這樣會誤殺一篇有用的html標(biāo)簽,比如img,a等等。因此,第一種想法被否定了。

然后菜鳥開始尋找第二種途徑。先將問題分解,讓我們先解決惡意腳本注入的問題。這個(gè)好辦,把其中一部分惡意的腳本過濾掉。好啊,這個(gè)簡單,這個(gè)時(shí)候就用到了我上面說的正則表達(dá)式了。一路走下去,惡意腳本注入得到解決。這里先不指出菜鳥這樣做的缺點(diǎn)。先看下一個(gè)問題。那么怎樣防止頁面錯版的問題呢。哎呀。。。這個(gè)菜鳥可是想破了腦袋,最后的結(jié)論是用正則表達(dá)式吧為關(guān)閉標(biāo)簽給照出來,要么修補(bǔ)未關(guān)閉標(biāo)簽,要不直接刪除未關(guān)閉標(biāo)簽。

再來評論菜鳥的第二種解決途徑和第三種方法。這樣做有一個(gè)共同的確定。就是你手動改變了用戶的內(nèi)容,不經(jīng)意的用戶還會以為你系統(tǒng)有問題,因?yàn)槿鄙俸芎玫挠脩趔w驗(yàn)。第二,正則表達(dá)式始終是要費(fèi)能的一個(gè)東東,需要不停的比對。雖然給系統(tǒng)的影響可能不是很大,但是能節(jié)約性能為什么不節(jié)約呢?

最終菜鳥找到了一個(gè)很好的方法,對于文本框的輸入,采用第一種方法,吧用戶的輸入內(nèi)容直接轉(zhuǎn)換為實(shí)體。當(dāng)然如果用戶有輸入圖片和超鏈接的需要,我們也不能不滿足。如何滿足?解決途徑如下:自定義標(biāo)簽,然后再顯示的時(shí)候自定義標(biāo)簽轉(zhuǎn)換。此時(shí)菜鳥才恍然大悟。

其實(shí)菜鳥也在不斷的進(jìn)步的,這個(gè)問題的解決體驗(yàn)了一個(gè)思想就是:特殊問題特殊處理的思想。有些東西是不能被大眾化的,那么我們就對其特殊處理吧!

最后,恭喜菜鳥走出了“因正則而正則”的誤區(qū)。同時(shí)附上正則表達(dá)式大全:

更多信息請查看IT技術(shù)專欄

更多信息請查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機(jī)網(wǎng)站地址:正則表達(dá)式不區(qū)分大小寫以及解決思路的探索
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國考·省考課程試聽報(bào)名

  • 報(bào)班類型
  • 姓名
  • 手機(jī)號
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 加入群交流 | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)