2015-06-19 1 views
-1

У меня есть строка в следующем формате: 90000 - 90000 Где числа могут иметь переменную длину, а затем между ними есть пробел, дефис, пробел. Я пытаюсь разделить эту строку на два числа с этим Regex:JavaScript Regex разделен дефисом и пробелами

var regex = new RegExp('/([0-9])\w+'); 

Но мой массив содержит только один элемент: исходную строку, которая не кажется, как она раскололась.

+3

Просто используйте 'input.split (/ * - * /)' – anubhava

+0

Мы можем дать вам ответ бит сложнее * исправить * ваше регулярное выражение, поскольку неясно, откуда оно взялось. –

+3

@nicael Эх, я мало знаю о Regex. Возможно, вместо того, чтобы насмехаться над мной, вы можете оставить полезный комментарий, чтобы я мог попытаться учиться. Благодарю. –

ответ

4

Вы можете использовать split функцию:

var s = '90000 - 90000'; 
var a = s.split(/[ -]+/); 
console.log(a); 

Выход:

["90000", "90000"] 
+0

Спасибо, это сработало отлично. –

1

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

var string = "90000 - 90000"; 
var array = string.split(" - "); 
console.log(array); 

выходы:

["90000", "90000"] 
+0

Я понимаю, что они не нужны, я просто пытался научиться их использовать. Но спасибо за ваш ответ! –

+1

Gotcha. В этом случае вы могли бы сделать то, что сделал n-dru, или это тоже сработало бы: 'string.split (/ - /)' –

Смежные вопросы