【发布时间】:2009-12-20 06:20:04
【问题描述】:
我有一个正则表达式,它返回我们和加拿大的邮政编码,如下所示。
((?<US>\d{5})|(?<Can>\b[A-Z-[DFIOQUWZ]]\d[A-Z-[DFIOQU]]\ +\d[A-Z-[DFIOQU]]\d\b))
我需要在 java 脚本或 jquery 中执行此操作。只能提取这些值的应用程序。例如,某人可以简单地将文档粘贴到文本区域中,单击一个按钮,然后将有效的美国和加拿大邮政编码提取到一个数组中以供进一步处理。我已经查看但找不到符合此要求的内容。
我尝试了 Waldek Mastykarz 的 RegEx 过滤器,但没有任何运气。
jQuery.extend(
jQuery.expr[':'], {
regex: function(a, i, m, r) {
var r = new RegExp(m[3], 'i');
return r.test(jQuery(a).text());
}
}
);
$("#idTextArea:regex('\d{5}')") US only
$("#idTextArea:regex('\\d{5}')") also tried this and host of others
idTextArea 的 textarea 输入如下。
"12345 ahdh 23, 6789, 65432"
我只想将 12345 和 65432 返回到数组中。
我完全被难住了,非常感谢任何帮助。
【问题讨论】:
-
你想要达到的目标也可以在没有那个 jQuery 插件的情况下完成。使用文本区域的事件
onchange获取其内容,并使用正则表达式对其进行解析。