2014-09-19 5 views
-1

1000 개 이상의 스크린이있는 애플리케이션에서 jQuery를 업데이트했으며 이벤트 핸들러에 대해 "실시간"에서 "켜기"로 대량 업데이트하고 싶습니다.RegEx를 사용하여 deprecated jQuery "live"를 "on"형식으로 바꾸시겠습니까?

응용 프로그램을 최소한으로 실행하기 위해 모든 것을 문서로 버블 링 할 계획입니다. 그러면 필자는 수동으로 문서를 수정하고 부모 요소로 업데이트 할 수있는 충분한 시간을 가질 수 있습니다.

나는이 형식을 대체하기 위해 노력하고있어 이에 대한

$("#some-id").live('click', function() //or 
$('.some-class').live('submit', function() 

:

$(document).on('click', "#some-id", function() //or 
$(document).on('submit', '.some-class', function() 

내가 비주얼 스튜디오를 사용하고 있지만, 대량 검색을 수행하기 위해 필요한 경우 다른 소프트웨어를 사용할 수 있습니다/교체 . 이 작업을 수행하는 데 몇 가지 표현이 필요한 경우에도 RegEx를 알고있는 사람이 누구입니까?

+2

왜 downvote? – dave

+0

나는 regex 전문가가 아니지만 $ ("# id")를 대체하는 제품을 찾을 수 있을지 의심 스럽다. $ (document) .on ('click', '#id')로 live ('click') – artm

+0

@artm 'var elems = matchSomething(); elems.live (...);' –

답변

1

, 문자열 선택기와 함께, 당신은 \$\(\s*(["'][^"']*['"])\s*\)\.live\(([^,]*)

을 찾을

에 원하는 $(document).on(\2, \1

(I 피난처 '로 대체 할 것 t는 Visual Studio를 잠시 사용했기 때문에 정규 표현식을 사용하는지, 아니면 대체를 위해 \2 또는 $2을 사용하는지는 알 수 없습니다.

는 두 번째 경우를 들어, 변수, 당신이 원하는 것 :

는 객체에 .live 방법에 대한 호출이 변경 끝날 것 때문에 일이 더 위험하다 ([^\s"()']+)\.live\(([^,]*)

주를 찾을 수 있습니다. 아마도 live이라는 기능이 없다면 아마 OK 일 것입니다.

각각의 경우에 올바른 작업을 수행하기 위해 한 번에 하나씩 교체 할 수 있습니다.

+0

Visual Studio 2013은 $ 1, $ 2, 참조 그룹에. – Stryner

+0

Thx가 작동했습니다! – TruMan1

1

꽤 가까운 한 가지 방법이 있습니다. 출력의 두 번째 매개 변수를 요청한 것처럼 jquery 선택기를 제거하지 않습니다. 귀하의 질문에 태그에 지정된

var output = input.replace(/(\S.*)[.]live[(]([^,]+),/g, "$$(document).on($2, $1,"); 

이 정규식

은 자바 스크립트이지만, 어떤 언어로 번역 할 수 있어야한다. 여기

가 jsfiddle이다 : 첫 번째 경우를 들어 http://jsfiddle.net/qc2homx6/

관련 문제