2012-01-22 4 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

/* Есть много способов пойти неправильно с регулярным expressions- этот метод игнорирует любые флаги в первом выражении, и не проверяет errors- Это безопаснее, чтобы написать ваши регулярные выражения целого, или строить их из строк. */

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].+/ 
*/ 
Смежные вопросы