`
zjutsoft
  • 浏览: 460265 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

html 文本框屏蔽非法字符,解决js的replace函数使光标跳到文本最后的问题

 
阅读更多
<script type="text/javascript">
function getCursorPos(obj)
{
  obj.focus();
var currentRange=document.selection.createRange();
var workRange=currentRange.duplicate();
obj.select();
var allRange=document.selection.createRange();
var pos=0;
while(workRange.compareEndPoints("StartToStart",allRange)>0)
{
  workRange.moveStart("character",-1);
  pos++;
}
currentRange.select();
return pos;
}
/*
定位光标
*/
function setCursorPos(obj,pos)
{
  var rng =obj.createTextRange();
  rng.moveStart('character',pos);
  rng.collapse(true);
  rng.select();
}

/*
替换后定位光标在原处,可以这样调用onkeyup=replaceAndSetPos(this,/[^/d]/g,'');
*/
function replaceAndSetPos(obj,pattern,text){
  if(event.shiftKey||event.altKey||event.ctrlKey||event.keyCode==16||event.keyCode==17||event.keyCode==18||(event.shiftKey&&event.keyCode==36))
   return;
var pos=getCursorPos(obj);//保存原始光标位置
var temp=obj.value; //保存原始值
obj.value=temp.replace(pattern,text);//替换掉非法值
pos=pos-(temp.length-obj.value.length);//当前光标位置

setCursorPos(obj,pos);//设置光标
}

//这里是对增强后的函数的调用,这里只能输入数字,如果输入其他字符将被过滤掉

/
        function inputNumberOnly(text){
  replaceAndSetPos(text,/[^/d]/g,'');
  }

分享到:
评论

相关推荐

    javascript设置文本框光标的方法实例小结

    这个函数接收文本框的ID和目标位置作为参数,创建一个文本范围,使其折叠到起始位置,然后移动开始位置到指定字符数,最后选中这个范围,即设置了光标位置。 这些函数在JavaScript中非常实用,特别是在需要在用户...

    C#文本框输入数字、小数自动转换为千分位相关

    通过`txtQty.SelectionStart`属性,可以确保光标停留在输入后的位置,而不是默认跳到文本开头或其他不期望的位置。 ```csharp txtQty.SelectionStart = txtQty.Text.Length; ``` 此外,为了响应文本框内容的变化,...

    java函数[定义].pdf

    int x)` 在 x 处插入文本s、`replaceRange(String s, int x, int y)` 用 s 替换从x 到 y 处的文本、`append(String s)` 在文本的最后追加文本s、`getCaretPosition(int n)` 获取文本区中光标的位置。 按钮 在 ...

    java常用函数

    - `replace(char old, char new)`用于替换字符串中的字符。 - 另外,还可以使用`trim()`方法去除字符串两端的空白字符。 8. **分析字符串**: - `StringTokenizer`类用于将字符串分割成多个子字符串(通常称为...

    重难点之java函数.pdf

    `replace(char old, char new)`函数用于替换字符串中的字符,而`trim()`用于去除字符串前后的空白字符。`StringTokenizer`类则用于按特定分隔符拆分字符串,`nextToken()`用于获取下一个分隔符前的单词,`...

    JavaScript监听文本框回车事件并过滤文本框空格的方法

    此外,清空文本框后,需要将光标重新定位到文本框中,以便用户能够继续输入。通常可以使用`username.focus()`来实现。 过滤文本框中的空格是本篇文章的重点。过滤操作通常在用户提交信息前执行,以防止用户不小心在...

    VB6.0编写的文本编辑器

    3. **字符串操作**:了解Mid、Left、Right、InStr、Replace等函数,以实现文本的截取、查找和替换。 4. **错误处理**:使用On Error语句进行错误捕获和处理,确保程序的健壮性。 5. **事件处理程序**:编写事件...

    java函数大全

    - **功能**: 返回从`startpoint`开始到字符串末尾的子字符串。 - **示例**: `"Hello World"`的`substring(6)`返回`"World"`。 - **方法**: `substring(int start, int end)` - **功能**: 返回从`start`到`end`...

    VB仿UBB编辑器中的字符表情功能.rar

    3. **字符串操作**:在VB中,可以使用字符串函数如`Insert`、`Replace`等来在文本中插入或替换特定内容。表情符号的插入就是通过这些函数实现的,将符号串插入到光标所在位置。 4. **文本框控件**:`TextBox`控件...

    javaScript表单验证

    如果文本域中的内容长度超过50个字符,则弹出警告框并阻止表单提交,同时光标聚焦到文本域。 ##### 2. 只允许输入中文 使用正则表达式来过滤掉所有非中文字符。 ```html &lt;input onkeyup="value=value.replace(/[^\...

    记事本(PB)

    5. **替换(Replace)**:在文本中查找特定字符或词组,并用新的内容替换,是文本编辑中的常用功能,有助于批量修改文本。 在PowerBuilder中实现这些功能可能涉及到对控件的操作,如文本框(Text Object)的事件处理...

    Java中常用的一些方法

    8. `replace(char old, char new)` 和 `trim()`:`replace()`用于替换字符串中的特定字符,而`trim()`则用于去除字符串两端的空白字符。 接下来,我们转向文本组件,主要包括TextField和TextArea: 1. `TextField...

    Java常用方法大全

    8. **字符串替换和去除空格**:`replace(char old, char new)`用于替换字符串中的字符,`trim()`方法用于去除字符串两端的空白字符。 在GUI编程中,Java提供了多种组件来处理用户输入和交互,如文本框和文本区: 1...

    js数字框输入自动跳格特效代码

    在这种场景下,为了提升用户体验,我们可以利用JavaScript实现数字框输入时的自动跳格效果,即用户每输入一个或几个数字,光标会自动移动到下一个预设的位置。这种功能可以确保用户按照规定的格式输入数字,防止输入...

    MsEditor 设计文档1

    2. **替换**:通过QStringList将文本分隔成多行,对每一行使用`replace`方法进行替换操作,然后将处理后的文本重新设置到文本框中。 3. **行号显示**:创建一个自定义的QPlainTextEdit子类,增加一个左侧的widget...

    Js 表单验证大全

    当用户在文本框内输入的文字长度超过50个字符时,会弹出警告框提示用户,并将焦点定位到文本框,阻止表单提交。 - **`document.a.b.value.length`**:获取文本域中的内容长度。 - **`alert("不能超过50个字符!");`*...

    记事本功能的查询,全部替换

    - 函数名为`AllFindReplace`,接受两个参数:`FindString`(需要查找的字符串)和`ReplaceString`(用于替换的字符串)。 - 函数返回类型为`void`,意味着它不返回任何值。 2. **初始化变量**: - 定义了一个...

    用c++编写的一个记事本

    `std::getline`函数用于读取一行文本,而`std::string::find`和`std::string::replace`等方法则用于搜索和修改字符串内容。 4. **内存管理**:C++允许直接操作内存,因此需要了解动态内存分配(`new`和`delete`...

    js使用小技巧

    Javascript小技巧一箩筐 事件源对象 event.srcElement.tagName event.srcElement.type 捕获释放 event.srcElement.setCapture(); event.srcElement.releaseCapture(); 事件按键 event.keyCode ...

    ExtJS4中文教程2 开发笔记 chm

    Edit Grid限制编辑 ExtJS 4 DirectStore post参数的变化以及应对方法 ...js函数match、exec、test、search、replace、split使用介绍 技巧:Javascript使用隐藏的new来创建对象 禁止页面全选复制,兼容多种浏览器

Global site tag (gtag.js) - Google Analytics