jQuery 토글 기능을 사용하여 텍스트 입력의 일부 문자를 변경하고 있습니다. 사용자가 버튼을 누를 때마다 입력 값은 단추 값 (숫자가있는)을 가져옵니다. 사용자가 버튼을 다시 클릭하면 스크립트는 입력 값의 버튼 문자를 제거해야합니다.Javascript에서 정지 문자가있는 정규 표현식
예를 들어 입력 값이 0 | 1 | 2 | 3 | 4 | 5이고 버튼의 값이 0 | 사용자가 처음 버튼을 클릭 할 때 입력 값은 1 | 2 | 3 | 4 | 5로 변경되어야하지만 사용자가 두 번째 버튼을 클릭하면 값이 1 | 2 |로 변경됩니다. 3 | 4 | 5 | 0.
내 정규 표현식이 정확하지 않은 것으로 나타 날 때까지 완벽하게 작동했습니다.
이 chacarters를 살펴 보자 : 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10
정규 표현식과 일치하는 두 개의 숫자가 있습니다 | 1가 |
$('.topmenu_permission').toggle(function(){
var permission = $(this).attr('name');
var valor = $('#userpermission').val();
var pattern = permission, re = new RegExp(pattern, "g");
valor = valor.replace(pattern, '');
$('#userpermission').val(valor + '' + permission);
$(this).css({ 'background' : 'green', 'color' : 'white' });
return false;
}, function(){
var permission = $(this).attr('name');
var valor = $('#userpermission').val();
var pattern = permission, re = new RegExp(pattern, "g");
valor = valor.replace(pattern, '');
$('#userpermission').val(valor);
$(this).css({ 'background' : '#ddd', 'color' : '#000' });
return false;
});
내가 배열에 문자열을 변환하고 지금은 완벽하게 작동하고, 당신이 아주 많이들 감사 : 10
그래서, 난 내 코드를 보면 그것을 해결하기 위해 필요합니다. 마지막 코드에서
봐 :
$('.topmenu_permission').toggle(function(){
var needle = $(this).attr('name').replace('|', '');
var myString = $('#userpermission').val();
myString = myString.split('|');
var index = $.inArray(needle, myString);
if(index >= 0)
{
myString.splice(index,1);
}
myString = myString.join('|');
myString = myString + '|' + needle;
$('#userpermission').val(myString);
$(this).css({ 'background' : 'green', 'color' : 'white', 'text-shadow' : 'none' });
return false;
}, function(){
var needle = $(this).attr('name').replace('|', '');
var myString = $('#userpermission').val();
myString = myString.split('|');
var index = $.inArray(needle, myString);
if(index >= 0)
{
myString.splice(index,1);
}
myString = myString.join('|');
$('#userpermission').val(myString);
$(this).css({ 'background' : '#ddd', 'color' : '#000' });
return false;
});
입니까? –
@KevinB : 변수 할당 다음에'pattern '이'$ (this) .attr ('name ');에 의해 반환 된 값과 같습니다. –
문자열을 가져 와서 배열 부분으로 나누면 아마 더 좋고/더 안정적 일 것입니다 :''0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 '.split ('|'); – sg3s