Javascript 使用JQuery从文本框中删除不需要的字符

Javascript 使用JQuery从文本框中删除不需要的字符,javascript,jquery,Javascript,Jquery,我想了解的是如何使用JQuery从文本框(或文本区域)中删除某些字符。我有C语言的代码,但我似乎无法将其转换为JQuery javascript。我的问题是,我不知道如何从文本框中获取作为字符数组的值,然后我可以循环使用该数组并与给定的一组不需要的字符进行比较。 这就是我在JQuery中取得的“成就”: $("input[type=text], textarea").change(function() { // code here }); 这是我的C语言代码: for(int i=0

我想了解的是如何使用JQuery从文本框(或文本区域)中删除某些字符。我有C语言的代码,但我似乎无法将其转换为JQuery javascript。我的问题是,我不知道如何从文本框中获取作为字符数组的值,然后我可以循环使用该数组并与给定的一组不需要的字符进行比较。 这就是我在JQuery中取得的“成就”:

$("input[type=text], textarea").change(function() {

   // code here

});
这是我的C语言代码:

for(int i=0;i=0x20)&&&(当前=0xE000)&&(当前=0x20&&c=0xE000&&c您可以使用与字符串的
length
属性相结合的方法来循环字符串中的字符

比如:

$("input[type=text], textarea").change(function() {
  var text = $(this).val()

  for(var i = 0; i < text.length; ++i) {
    var currentChar = text.charCodeAt(i);

    // Do something with it...
});
$(“输入[type=text],textarea”).change(函数(){
var text=$(this.val()
对于(变量i=0;i
我的初始版本使用了
charAt()
,但因为它看起来像是在处理Unicode代码点,
charCodeAt()
更合适。

在输入/文本区域使用事件观察程序(onkeydown/onkeypress/onkeypup),按下键,如果键是不需要的字符,则停止事件的发生

$("input[type=text], textarea").observe('keypress', function(e) {
 var keynum; 
 if(window.event)
 {
  keynum = e.keyCode
 }
 else if(e.which)
 {
  keynum = e.which
 }
 if(keynum == '13' || keynum == 'something else' || [...])
 {
  Event.stop(e);
 }
});

要获取textarea的值,请尝试:

$('input[type=textarea]').change(function(){
   var value = $(this).val(); 
   ...........
});
要删除不需要的字符,请尝试以下示例..我从jquery文档(jquery.grep())复制

文本区域:

<textarea id="item" name="item" rows="5" cols="80">Some text in here</textarea>
这里有一些文本
jQuery代码:

var text = $('#item').val();
var newtext = "";
for (var i = 0; i < text.length; i++) {
   var c = text.charCodeAt(i);
   if ((c == 0x9) || (c == 0xA) || (c == 0xD) || 
       (c >= 0x20 && c <= 0xD7FF) ||
       (c >= 0xE000 && c <= 0xFFFD)) {
       newtext += text[i];
   }
}
$('#item').val(newtext);
var text=$('#item').val();
var newtext=“”;
对于(变量i=0;i(c>=0x20&&c=0xE000&&c我更喜欢使用这种类型的javascript函数(从我过去的阴影中)首先阻止输入字符:

每个输入控件上都有如下内容: onkeypress='checkKey(这是“a-zA-Z0-9”、“N”、“10”);'

该函数如下所示:

   //****************************************************************************
   // Function: checkKey()
   //   Author: Ron Savage
   //     Date: 10-11-2004 
   //    
   // Description: This function tests reg exp syntax.
   //****************************************************************************
   function checkKey(textControl, reExpr, allCaps, maxlen)
    {
      popupMessage.hide();

      keyStr = String.fromCharCode(event.keyCode);
      textLength = textControl.value.length;

      if (allCaps == 'Y')
         {
         keyStr = keyStr.toUpperCase();
         event.keyCode = keyStr.charCodeAt(0);
         }

      if ( reExpr != '' )
         {
        reString = '[^' + reExpr + ']';
         re = new RegExp(reString, 'g');

         //alert('RE: ' + reString);

         result = keyStr.match(re);

         if (result)
            {
            beep();
            event.returnValue = false;
            showPopupMessage(textControl, result.toString() + ' not allowed!');
            }
         }

      if ( textLength > maxlen )
         {
            beep();
            event.returnValue = false;
            showPopupMessage(textControl, 'Max length [' + maxlen + '] exceeded!');
         }

      //alert('Key: ' + keyStr + ' code: ' + event.keyCode);
      }

正则表达式不是这样吗,比如:

$("input[@type='text'], textarea").change(function() {
    this.value = this.value.replace(/[^\w\d]+/gim,"");
});

基于此验证xml?我只能假设这不是预期的utf-8(每个字符最多有6个字节)验证xml…?我猜你指的是我的c#variable_validXml…它实际上与我在客户端上所做的工作无关。非常好,但在粘贴文本时不会处理这种情况。是的,这正是我试图为我验证的
Event.stop(e)
不起作用。
e.preventDefault()
完成了任务。尽管这与JQuery的关系最小,但这解决了我的问题。您缺少了一个空间…但这是最好的解决方案,imho。可能更快,但我希望我的代码在这里有意义,所以我不使用regex…至少这次不是,但无论如何,谢谢。
var text = $('#item').val();
var newtext = "";
for (var i = 0; i < text.length; i++) {
   var c = text.charCodeAt(i);
   if ((c == 0x9) || (c == 0xA) || (c == 0xD) || 
       (c >= 0x20 && c <= 0xD7FF) ||
       (c >= 0xE000 && c <= 0xFFFD)) {
       newtext += text[i];
   }
}
$('#item').val(newtext);
   //****************************************************************************
   // Function: checkKey()
   //   Author: Ron Savage
   //     Date: 10-11-2004 
   //    
   // Description: This function tests reg exp syntax.
   //****************************************************************************
   function checkKey(textControl, reExpr, allCaps, maxlen)
    {
      popupMessage.hide();

      keyStr = String.fromCharCode(event.keyCode);
      textLength = textControl.value.length;

      if (allCaps == 'Y')
         {
         keyStr = keyStr.toUpperCase();
         event.keyCode = keyStr.charCodeAt(0);
         }

      if ( reExpr != '' )
         {
        reString = '[^' + reExpr + ']';
         re = new RegExp(reString, 'g');

         //alert('RE: ' + reString);

         result = keyStr.match(re);

         if (result)
            {
            beep();
            event.returnValue = false;
            showPopupMessage(textControl, result.toString() + ' not allowed!');
            }
         }

      if ( textLength > maxlen )
         {
            beep();
            event.returnValue = false;
            showPopupMessage(textControl, 'Max length [' + maxlen + '] exceeded!');
         }

      //alert('Key: ' + keyStr + ' code: ' + event.keyCode);
      }
$("input[@type='text'], textarea").change(function() {
    this.value = this.value.replace(/[^\w\d]+/gim,"");
});