2012-10-19 2 views
-2

나는이 형식의 변수를 건네하고는 :정규식 분리 변수 - jQuery를

var fubar = e2s2 

자, 문자는 항상 동일하지만 숫자는 변화를 않습니다. 숫자는 1-9까지만 가능합니다. 결말 결과는 다음과 같을 것입니다 :

var foo = e2 
var bar = s2 

나는 그 숫자만큼 정착 할 것입니다. 나는 그 자리를 가져야 만합니다.

+1

'e2s2'는 샘플 값입니까? – VisioN

+0

무엇을 하시겠습니까 ... 숫자 또는 둘 모두 ... – Anirudha

+0

둘 중 하나 또는 둘 ... 정말로 중요하지 않습니다. – TurboSupra

답변

1

에 포함됩니다 빈 공간을 방지 할 수 있습니다. 요소가 한 자리 문자 다음 하나의 숫자가 아닌 문자가, 다음

elements = str.split(/(?=\D)/) 

배열의 전체 요소를 얻기 위해 사용하는 형식으로 항상 경우 다음 코드는

var fubar = "e2s2"; 
var a = fubar.replace(/\d/g, function(arg){ return arg+ ","}).split(","); 
a.pop(); // removing last item. 
var foo = a[0]; 
var bar = a[1]; 
+0

Yikes. 그런 단순한 문제에 복잡해 보이는 군, 그렇지 않니? – Madbreaks

+0

하지만 그와 같은 문자열은 작동합니다. e2s2e2er2. – Anoop

+0

'var digits = fubar.replace (/ \ d/g, '') .split (''); ' – Madbreaks

3

RegEx는 항상이 형식으로되어있을 필요가 없습니다.

var foo = fubar.substr(0,2), 
    bar = fubar.substr(2); 

.. 또는, 당신은 단지 숫자하려는 경우 : 당신이 정말 정규식 솔루션을 필요로하는 경우

var foo = fubar.substr(1,1), 
    bar = fubar.substr(3); 

을, 방법에 대한 : 그것에 대해 갈

var digits = fubar.replace(/\d/g, '').split(''), 
    foo = digits[0], 
    bar = digits[1]; 

백만 가지 방법 . 그러나 실제로 필요하지 않으면 RegEx를 사용하지 마십시오.

건배

1

이것은 split method

(?![1-9])

또는

(?=[^1-9]) 

참고로 작업을 수행합니다

사용 (?![1-9]|^) 대체와 정규 표현식을 사용하여 결과 배열

1
var fubar = 'e2s2' ; 

var foo = fubar.substr(0,2) ; 
var bar = fubar.substr(2); 

FIDDLE

0

를 작동합니다; 숫자 (숫자) 배열을 얻으려면

(numbers = str.split(/\D/)).splice(0, 1); 
+0

내가 좋아하는 이유는'str.split (/ \ D /)'? – Madbreaks

+0

첫 번째 색인에서 빈 공간이 생성된다. – Anirudha

관련 문제