2016-06-29 3 views
0

HTML 문자열에서 정규식으로 숫자를 전역 적으로 대체하려고 시도하지만 숫자가 속성에 연결되지 않은 경우에만 숫자를 대체합니다.jQuery는 html로 전역 적으로 정수를 대체합니다.

전 세계적으로 123 호를 대체하고 싶습니다. 이 예제의 문제점은 값의 숫자 만 변경되었으며 대괄호 사이의 숫자는 변경되지 않는다는 것입니다.

var oldId = 123; 
var newId = 1234; 

<input type="hidden" name="field_name" value="123"> 
<input type="radio" name="field_name[123]" class="id_123"> 

$('.settings').replace(/oldId/g, newId); 

<input type="hidden" name="field_name" value="1234"> <-- changed 
<input type="radio" name="field_name[123]" class="id_123"> <--- not changed 

내가 내 정규식 어떻게 든를 수정해야 할 것 같아요 현재 결과는?

+2

당신이 jQuery를 개체를 더 가지고하지 않는다로'TypeError' 발생합니다 게시 한 코드를 포함한다 요소의 .outerHTML을 대체 할 .each(), RegExp에서 g 플래그를 사용할 수 있습니다 'replace' 메소드. – undefined

답변

1

당신은 name 속성이 "field_name"

var oldId = 123; 
 
var newId = 1234; 
 

 
$("input[name*=field_name]").each(function(i, el) { 
 
    el.outerHTML = el.outerHTML.replace(new RegExp(oldId, "g"), newId) 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="hidden" name="field_name" value="123"> 
 
<input type="radio" name="field_name[123]" class="id_123">

+0

대단히 감사합니다! '.replace (새 RegExp (oldId, "g"), newId) 코드의 일부분을 가져 와서 트릭을 수행했습니다. 많은 감사합니다! =) – directory

관련 문제