一道正則表達式題目

有這樣一首詩html

感師恩
紛飛三十載,甘當擺渡人。
百年興國夢,一片育才心。
術業專攻久,識見萬丈深。
諄諄長者誨,愛生甚己身。

陶醉算法趣,數理有乾坤。
長困符號陣,推敲爲求真。
沉思前人意,莫知晨與昏。
束身閣樓中,掩耳棄紅塵。

明辨後生意,指點若有神。
勞形案牘上,晝夜批論文。
不圖名與利,只願木成林。
桃李芬芳日,師心即是春。

在手機端最好顯示成一句一行。面試

//判斷是否爲手機訪問
    const isMobile = (function () {
        var ua = navigator.userAgent;
        var ipad = ua.match(/(iPad).*OS\s([\d_]+)/),

            isIphone = !ipad && ua.match(/(iPhone\sOS)\s([\d_]+)/),

            isAndroid = ua.match(/(Android)\s+([\d.]+)/)
        return isIphone || isAndroid
    })()

    function split(s) {
        if (!isMobile) return s
        return s.replace(/([^\u4e00-\u9fa5\n](?=[\u4e00-\u9fa5]))/g, "$1\n")
    }
  • \u4e00-\u9fa5表示所有漢字
  • (?=xxx)表示零寬斷言
  • $1表示反向引用

這個問題用到了不少正則表達式知識,是一個很好的面試題。正則表達式

參考資料

正則表達式進階算法

相關文章
相關標籤/搜索