2015-05-07 3 views
1

Можно ли изменить вывод группы соответствия: яваскрипта регулярного выражения кодаизменения вывода группы соответствия: яваскрипта регулярного выражения

psudo:

var from_another_script=/file:(\w+)/; 
var inp = 'file:name'; 
var matches = inp.match(from_another_script); 

обычно выход будет «название»

Я хотел бы изменить регулярное выражение, чтобы получить вывод как «name_file»

Я видел ссылки на регулярные выражения (не js и не совпадают) как /file: (\ W +)/$ 1_file

ответ

1

Не с match, но вы можете сделать это:

var inp = 'file:name'; 
var output = inp.replace(/file:(\w+)/, '$1_file'); 

То, что вы были на другом языке не только регулярное выражение: это регулярное выражение и замена шаблон. Вы не можете добавить _file только с регулярным выражением. Если вы можете изменить вызывающий код, вот решение:

var from_another_script={ 
    regex: /file:(\w+)/, 
    replacementPattern: '$1_file' 
} 
var inp = 'file:name'; 
var output = inp.replace(from_another_script.regex, from_another_script.replacementPattern); 
+0

К сожалению, «from_another_scrip» т регулярное выражение должно содержать модификатор, как это происходит из другого сценария. –

+0

Вы хотите, чтобы другие строки остались неизменными? Вы не можете: матч не может ничего добавить. –

+0

Да, я боялся, что это так, я не мог найти ничего в документах об этом, поэтому мне придется сделать серьезную доработку в другом скрипте. –

1

Вы можете использовать следующее:

inp.replace(/file:(\w+)/, '$1_file'); 
Смежные вопросы