ExtJs 正则表达式小结

网络推广 2025-04-24 15:11www.168986.cn网络推广竞价

近期项目中应用了Extjs框架,在输入时需要进行验证,因此想到了使用正则表达式。在这里,我整理了一些在Extjs中常用的正则表达式,并简单解释其作用。

对于数字相关的验证,我们有:

`"^\d+$"`:匹配非负整数(包括正整数和0)。

`"^[0-9][1-9][0-9]$"`:确保是正整数。

`"^((-\d+)|(0+))$"`:匹配非正整数,包括负整数和0。

`"^-[0-9][1-9][0-9]$"`:匹配负整数。

`"^-?\d+$"`:匹配整数,无论是正还是负。

对于浮点数,我们有:

`"^\d+(\.\d+)?$"`:匹配非负浮点数。

一个更复杂的表达式用于匹配正浮点数、非正浮点数和浮点数。

对于字母和字符串的验证,例如:

`"^[A-Za-z]+$"`:只包含英文字母。

`"^[A-Z]+$"`:只包含英文字母大写。

`"^[a-z]+$"`:只包含英文字母小写。

还有用于匹配Email地址、URL、IP地址等的正则表达式。

对于中文和其他字符的特殊处理,我们有:

`[\u4e00-\u9fa5]`:匹配中文字符。

`[^\x00-\xff]`:匹配双字节字符,包括汉字在内。

其他常用的正则表达式包括匹配空行、HTML标记、首尾空格等。

在理解了这些正则表达式后,我们可以更准确地验证用户的输入,确保数据的准确性和完整性。这些表达式在Extjs框架中非常有用,能够帮助我们构建健壮、用户友好的应用程序。

除了这些基本的正则表达式外,还有许多其他复杂的用法和高级技巧。正则表达式是一个强大的工具,掌握好它可以极大地提高我们的编程效率和代码质量。如果您对某个特定的正则表达式或用法有疑问,欢迎进一步询问。下面是一个元字符及其在正则表达式中的行为的简要列表:

`\`: 将下一个字符标记为一个特殊字符、或一个原义字符、或一个后向引用或一个八进制转义符。

`^`: 匹配输入字符串的开始位置;如果设置了RegExp对象的Multiline属性,也匹配''或'\r'之后的位置。

`$`: 匹配输入字符串的结束位置;如果设置了RegExp对象的Multiline属性,也匹配''或'\r'之前的位置。

`()`: 匹配括号内的子表达式并记住匹配的子序列。

`[]`: 用于定义字符集合的括号字符。

`{}`: 用于指定前面的子表达式匹配的次数范围或顺序。

`|`: 表示或操作,匹配竖线前或后的表达式。

`+`: 匹配前面的子表达式一次或多次;等价于“{1,}”。

`?`: 匹配前面的子表达式零次或一次;等价于“{0,1}”。

`\d`: 表示数字字符的集合(等价于[0-9])。 以及其他许多特殊字符和符号。

在编程世界中,我们经常需要利用工具来处理各种复杂的文本数据。其中,正则表达式如同一把锐利的剑,能够帮助我们轻松应对各种文本挑战。今天,让我们一同如何通过正则表达式的魔力来处理文本。

让我们来看看如何计算字符串的长度。在包含汉字的双字节字符中,每一个汉字都占据两个字节的空间。我们可以使用正则表达式来匹配这些双字节字符,从而精确计算字符串的长度。比如我们可以这样写:`String.prototype.len = function() { return this.replace([^x00-xff]/g,"aa").length;}` 这段代码将非ASCII字符替换为"aa",然后计算长度,从而得到包含汉字在内的字符串长度。

接下来,我们来处理一些常见的文本格式问题。空行、HTML标签等,都可以通过正则表达式轻松匹配并处理。例如,我们可以使用正则表达式来匹配首尾空格,从而实现类似JavaScript中trim的功能。代码示例如下:`String.prototype.trim = function() { return this.replace(/(^s)|(s$)/g, ""); }` 这段代码可以去除字符串两端的空格。

在编程中,我们常常需要处理IP地址。狼蚁网站的SEO优化涉及到使用正则表达式匹配IP地址并将其转换为数值。其实,除了使用正则表达式外,我们还可以选择使用split函数来分解IP地址,这样的方法可能更简单。例如:通过 `ip=ip.split(".")` 可以轻松将IP地址分解为四部分。然后我们可以利用简单的算术运算将这四部分转换为对应的数值。

我们还会经常遇到匹配Email地址和URL的情况。这时,我们可以使用特定的正则表达式来进行匹配。例如:匹配Email地址的正则表达式为 `w+([-.].w+)@w+([.-].w+).w+([.-].w+)`;匹配URL的正则表达式为 ` ./?%&=])?` 。这些表达式能够准确匹配各种复杂的文本格式。

关于去除字符串中的重复字符的问题,我也有一个简单的实现方法。思路是使用正则表达式和后向引用功能来取出重复的字符,然后建立新的表达式取出不重复的字符。这个方法虽然简单实用,但对于字符顺序有要求的字符串可能不适用。具体实现如下:首先通过替换操作取出重复的字符并建立新的字符串s1;然后基于s1建立正则表达式进行替换操作得到不重复的字符s2;最后通过弹窗显示结果。这种方法对于简单的字符串处理非常有效。

正则表达式的应用广泛且强大,掌握好它如同掌握了一把处理文本数据的利剑。希望以上的分享能对您有所启发和帮助!利用正则表达式从URL中提取文件名并进行JavaScript处理的程序示例:

```javascript

// 使用正则表达式从URL中提取文件名

let s = "

s = s.replace(/(.?)\.([^.]+)(\..?)?/ig, "$2"); // 提取文件名,并忽略扩展名前的任何前缀字符。如得到:page1

alert(s); // 提示文件名。

```

对于网页表单里的文本框输入内容的限制,以下是针对不同内容类型限制的示例代码:

限制只能输入中文:

```javascript

onkeyup="this.value=this.value.replace(/[^\u4E00-\u9FA5]/g,'')" // onkeyup事件用于实时过滤非中文输入。

onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))" // onbeforepaste事件用于阻止粘贴非中文内容。

```

限制只能输入全角字符:

```javascript

onkeyup="this.value=this.value.replace(/[^\uFF00-\uFFFF]/g,'')" // onkeyup事件用于过滤非全角字符输入。

onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))" // onbeforepaste事件用于阻止粘贴非全角字符内容。

```

限制只能输入数字:

```javascript

onkeyup="this.value=this.value.replace(/[^\d]/g,'')" // onkeyup事件用于过滤非数字字符输入。注意这里使用了反斜杠转义字符来避免正则表达式的特殊字符影响。

onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))" // onbeforepaste事件用于阻止粘贴非数字内容。同样使用转义字符避免干扰。注意这里的正则表达式没有错误修正,需要添加以确保正确匹配数字字符。修正后的表达式为:\D 表示非数字字符的否定式。即修正为 /[^\D]/g。但这里似乎存在格式问题,所以直接使用了原始代码中的表达式。请根据实际情况调整。

```

上一篇:ASP.NET存储过程实现分页效果(三层架构) 下一篇:没有了

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by