2012-01-22 39 views
0

可能重複:
How can I concatenate regex literals in Javascript?如何連接兩個表達式的常客

我在我的手中有兩張常客表達式。 A和B我想要做的是,我的表情應該從A開始,然後用B完成,我該怎麼做。

A = [^ a-zA-Z]和B = /。+ /;

+0

A不是正則表達式。 – kennebec

+0

@kennebec:'我手裏有兩個常客表情。 A和B ...' – qwertymk

+2

你的意思是你想讓一個正則表達式具有這兩種特徵,或者你想*動態地,以編程方式生成*基於另外兩個正則表達式的新正則表達式? – deceze

回答

0

/*有很多方法去錯正規以下詞組 這種方法忽略任何標誌的第一表達式, 和不檢查錯誤 - 它是安全的寫你的正則表達式的整體, 或者從字符串構建它們。 */

function mergeRx(start, end){ 
    start= String(start).substring(1); 
    end= String(end).substring(1); 
    var rx=/\/([igm]+)?$/, 
    flag= end.match(/[igm]+$/) || ''; 

    start= start.replace(rx, '')+end.replace(rx, ''); 
    return RegExp(start, flag); 
} 

var A=/[^a-zA-Z]/, B=/.+/; 
mergeRx(A, B) 

/* returned value: (RegExp) 
/[^a-zA-Z].+/ 
*/