非主流javascript教學(七)

來源:互聯網
上載者:User

每一個沒有在javascript裡面寫過Regex的前端工程師, 上輩子都是折翼的天使,

你傷不起啊~~

 

用javascript , 就很難不用正則。

我們說:尋找節點的時候, 我們不是有 DOM嗎, 不是有jQuery嗎, 正則?多此一舉了吧?

 

不過請記住:

1 你還能找到什麼技術寫起來比正則更裝13嗎?不能!

2 沒有2了。 不能再2下去了。

 

我們用正則, 有很多地方:

1 ajax之後,分析。

  當然, 有的人說,你太土了。 還正則, 我ajax拿到的從來都是JSON

  呃, 這個問題, 我想說。。。 我經常在本地用Ajax來抓網頁或者刷論壇的。 因為本地檔案沒有跨域的問題嗎。

比如這樣:

            $.ajax({
                type: 'GET',
                url: 'http://www.baidu.com/',
                success: function(msg){
                    alert(msg);
                }
            });

 

 注意要用IE, IE!!!

因為Firefox相對規範一些, 做壞事難一些。你懂的。

 

so, 這個時候, 當然, 可以用$(msg)來處理。 但是我打賭你拿到這個東西之後會很想分析, 而不僅僅是尋找節點。

 

2 驗證。

大家都懂的, javascript最初就是為了驗證而誕生的。 因此, 沒有正則, 它混個屁啊!!

 

啊, 不對。 應該說:javascript這麼高貴的語言怎麼可能連正則都沒有呢!!!!!!

 

 然後問題來了:

1 既然javascript是一門物件導向的語言, 那它有Regex類嗎?

肯定有!!!! 怎麼會沒有!!!你這是在鄙視高貴的javascript嗎?

2 既然有, 那麼我們可以去new嘍?

當然可以!!怎麼會不可以!!!你這是在鄙視高貴的javascript嗎?

3 那, 你一定經常new嘍?

當然。。。。不!!! 你這是在鄙視undefined嗎?

 

=。=

我們知道, 正則的構造, 一般都比較慢。

比如,C#, 一般大家都會編譯正則嗎。 最不濟也要做個正則的池, 在裡面取。

此是題外話, 不多說了。

 

但是, 我們高貴的javascript, 怎麼會做這麼傻的事情呢?

我們天生就有池。 你只要使用字面量即可:

 

 

var r_int = /^[0-9]+$/

 

當你第二次用相同的字面量聲明同一個正則的時候, 他們會自動指向同一個對象!

嗯, 很像C#的字串駐留機制是嗎?

有點吧。 C#肯定是照javascript抄的。 以微軟的秉性, 沒的跑。肯定的。

 然後, 有了正則, 怎麼辦?match?

javascript裡的方法叫exec。 要知道正則簡直可以說是一門強大的語言。 用exec做名字一點不過分。

再說你能compile, 不能exec, 怎麼說得過去呀!

不過我們驗證一般只看對不對, 而不關心分組, 是不是?

所以一般用test方法就夠了。

 

推薦直接test的理由有兩個:

1 test快。

2 exec慢。 而且test能搞定的用exec太大動幹戈了。

3 undefined同學是做測試出身的。

 

=。=

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.