JavaScript实现:多个onload与表单操作代码段

0 下载量 65 浏览量 更新于2024-08-29 收藏 59KB PDF 举报
"这篇资源主要分享了一些实用的JavaScript表单相关的代码片段,包括如何处理多个window.onload事件、正则表达式去除字符串首尾空格、过滤中文字符、禁止用户复制和粘贴,以及限制字符串长度(区分中英文)的方法。" 在JavaScript中,表单处理是非常常见且重要的任务。以下是对这些代码段的详细解释: 1. **处理多个window.onload事件**: 当一个页面加载完成时,`window.onload` 事件会被触发。然而,如果需要在页面加载后执行多个函数,直接将它们附加到 `window.onload` 只会覆盖先前的函数。为了解决这个问题,我们可以创建一个 `addLoadEvent` 函数,它允许我们将多个函数添加到加载事件中,而不会相互覆盖。该函数首先保存当前的 `onload` 事件处理函数,然后将新的函数添加到现有的处理程序中,确保所有函数都会被调用。 ```javascript function addLoadEvent(func) { var oldonload = window.onload; if (typeof window.onload != 'function') { window.onload = func; } else { window.onload = function() { oldonload(); func(); } } } ``` 2. **正则表达式去空格**: 有时我们需要去除字符串两端的空格。可以使用正则表达式 `/^(\s|\u00A0)+|(\s|\u00A0)+$/g` 来匹配并替换任何开头或结尾的空格或不可见的空白字符(如NO-BREAK SPACE,Unicode 编码为 \u00A0)。 ```javascript str.replace(/^(\s|\u00A0)+|(\s|\u00A0)+$/g, ""); ``` 3. **利用正则过滤中文**: 如果需要从字符串中移除所有中文字符,可以使用正则表达式 `/[\u4e00-\u9fa5]/g` ,这个正则会匹配所有中文范围内的字符。 ```javascript str.replace(/[\u4e00-\u9fa5]/g, ""); ``` 4. **禁止用户的拷贝和复制**: 在某些情况下,可能希望阻止用户通过鼠标或键盘复制表单中的内容。这可以通过在元素上设置 `oncopy` 和 `onpaste` 事件来实现,并返回 `false` 阻止默认行为。 ```javascript xxx.oncopy = function() { return false; }; xxx.onpaste = function() { return false; }; ``` 5. **限制字符串长度(区分中英文)**: JavaScript 的 `substr` 方法不区分中英文字符长度,但我们可以自定义一个函数来计算不同模式下的字符串长度。这里提供了一个函数 `strLen`,它可以区分中文字符(在 "Ch" 模式下,每个中文字符计为2个字符)和英文字符(在 "En" 模式下,每个字符计为1个字符)。这个函数可以用于在用户输入时实时计算并限制字符串的长度。 ```javascript var strLen = (function() { return function(_str, _model) { _model = _model || "Ch"; var _strLen = _str.length; // ... 具体实现省略 ... } })(); ``` 这些代码片段提供了处理JavaScript表单操作的一些实用技巧,可以帮助开发者更高效地管理页面加载、文本处理和用户交互。