2017-02-22 25 views
3

Существует строка:Как разбить строку в javascript с помощью RegExp?

var str = "a1c a12c a23c ac 1234 abc"; 

и RegExp:

var re = /a(\d*)c/g; 

Я хочу разделитьstr по числа, что между a и c, результат я хочу:

['a','c a','c a','c a','c 1234 abc'] 

как это сделать?

+0

не должно быть результатом [ 'а', 'C A', 'C A', '1234 с ас аЬс']? – marvel308

+0

@ marvel308 извините! Почему результат должен быть «['a', 'c a', 'c a', 'c ac 1234 abc']'? Я хочу, чтобы результат был «['a', 'c a', 'c a', 'c a', 'c 1234 abc']'. Я хочу разделить 'ac' тоже. – Guo

ответ

3

Один из способов - заменить цифры специальным символом ('-' в этом случае) и разделить его на этот символ.

str.replace(/a(\d*)c/g, 'a-c').split('-'); 

var str = "a1c a12c a23c ac 1234 abc"; 
 
var re = /a(\d*)c/g; 
 

 
console.log(str.replace(re, 'a-c').split('-'));

0

Вы можете использовать позитивный взгляд вперед.

var str = "a1c a12c a23c ac 1234 abc"; 
 

 
console.log(str.split(/\d*(?=\d*c.*a)/));

+0

Спасибо! Но если 'str =" b1c a12c a23c ac 1234 abc "', результат неверен. – Guo

+0

@Guo, пожалуйста, добавьте желаемый результат. –

+0

Я хотел, чтобы результат был «['b1c a', 'c a', 'c a', 'c 1234 abc']', на самом деле reslut is '['b', 'c a', 'c a' , 'c a', 'c 1234 abc'] ' – Guo