2010-07-20 5 views
55

JavaScript에서 preg_match과 같은 작업을 수행 할 수 있습니까? PHP?JavaScript의 preg_match?

내가 문자열에서 두 숫자를 얻을 수 있도록하고 싶습니다 : 두 개의 분리 된 변수에

var text = 'price[5][68]'; 

:

var productId = 5; 
var shopId = 68; 

편집 : 그것은 도움이 될 경우 나는 또한 MooTools를 사용합니다.

답변

85

JavaScript에는 사용자가 원하는 것을 수행하는 RegExp 개체가 있습니다. String 개체에는 도움이 될 match() 함수가 있습니다.

var matches = text.match(/price\[(\d+)\]\[(\d+)\]/); 
+26

다른 Google 직원의 경우; 'text.match'는 일치의 결과를 리턴합니다. – Maurice

26
var text = 'price[5][68]'; 
var regex = /price\[(\d+)\]\[(\d+)\]/gi; 
match = regex.exec(text); 

일치 [1]와 일치하는 [2]에 찾고있는 번호가 포함됩니다.

5

이 작동합니다 : 나는 부울 수익을 제공하기 때문에 더는 preg_match을 행동 테스트를 발견

var matches = text.match(/\[(\d+)\][(\d+)\]/); 
var productId = matches[1]; 
var shopId = matches[2]; 
4
var myregexp = /\[(\d+)\]\[(\d+)\]/; 
var match = myregexp.exec(text); 
if (match != null) { 
    var productId = match[1]; 
    var shopId = match[2]; 
} else { 
    // no match 
} 
13
var thisRegex = new RegExp('\[(\d+)\]\[(\d+)\]'); 

if(!thisRegex.test(text)){ 
    alert('fail'); 
} 

. 그러나 RegExp var를 선언해야합니다.

팁 : RegExp는 시작/끝 부분에 자신을 /로 추가하므로 전달하지 마십시오.

+6

''var match = text.match (/ price \ [(\ d +) \] \ '와'alert (match [1]); test (text)' – FlabbyRabbit

+0

이 질문의 제목을 보았을 때 preg_match의 정규식 테스트 기능을 재현하는 방법을 찾고 있었기 때문에 동의합니다. ;) – flu

+0

RegExp 클래스 생성자를 사용하면 패턴에서 변수를 보간해야하는 경우 문자열이 필요하다는 이점이 있습니다! –