我正在使用jQuery切換功能來更改文本輸入的某些字符。每次用戶點擊一個按鈕時,輸入值都會獲得按鈕的值(這是|帶數字的值)。當用戶再次點擊該按鈕時,腳本需要刪除輸入值的按鈕字符。例如,如果輸入值爲0 | 1 | 2 | 3 | 4 | 5,並且按鈕的值爲0 | 0 | 1 | 2 | 3 | 4 | 5,值,當用戶第一次點擊該按鈕時,輸入的值應該變爲1 | 2 | 3 | 4 | 5,但是當用戶第二次單擊該按鈕時,該值應該更改爲1 | 2 | 3 | 4 | 5 | 0。使用停止字符的Javascript中的正則表達式
我做到了,直到我注意到我的正則表達式並不準確。
看看這些chacarters:0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10
有匹配正則表達式的兩個數:| 1和| 10
所以,我需要修復它,看看我的代碼:
$('.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;
});
非常感謝你們,我轉換的字符串數組,現在它的工作得很好。
看看最終代碼:
$('.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('|' ); // ['0','1','2','3'/ *等.. * /]' – sg3s