【发布时间】:2010-09-02 01:31:26
【问题描述】:
我有例如:(111) 222-3333 - Verizon ...我想在我选择这个时填写两个文本框。第一个文本框有 (111) 222-333,第二个文本框有 Verizon。用 jquery 可以吗?
【问题讨论】:
标签: jquery
我有例如:(111) 222-3333 - Verizon ...我想在我选择这个时填写两个文本框。第一个文本框有 (111) 222-333,第二个文本框有 Verizon。用 jquery 可以吗?
【问题讨论】:
标签: jquery
听起来像是regular expression 的工作:
var text = "(111) 222-3333 - Verizon";
var regexp = /(\(\d{3}\)\s\d{3}-\d{4}) - ([A-Za-z ]+)/;
result = regexp.exec(text);
if (result) {
alert('Number: ' + result[1] + '\nCarrier: ' + result[2]);
}
else {
alert('No match');
}
稍作搜索应该会找到更强大的正则表达式来匹配电话号码。
另外 - 您可以使用 jQuery 来帮助您移动结果值,即 $('#number_text_box').text(result[1]);,但正则表达式是 javascript 的东西,它不依赖于 jQuery。
更新:此表达式在数字的每个单独部分周围添加捕获组 ( )。
var regexp = /\((\d{3})\)\s(\d{3})-(\d{4}) - ([A-Za-z ]+)/;
然后您可以将数字粘合在一起:
var number = result[1] + result[2] + result[3];
var carrier = result[4];
在浏览器本身中进行实验是一个好地方——在 Firebug 或 Webkit 的控制台中,您可以像这样直接运行 javascript 来测试它。
【讨论】:
有两种方法,你可以使用
var str="(111) 222-3333 - Verizo"
var result=str.split(" - ");
//var result[0] and result[1]
如果你想更多地指定变量值,你可以在 jquery 中使用一个不错的jquery plugin 由 James Padolsey 创建,允许使用正则表达式进行选择。
假设你有以下 div:
<div class="asdf">
Padolsey's :regex filter can select it like so:
$("div:regex(class, .*sd.*)")
【讨论】:
你能再描述一下吗?这里的分隔符是什么?如果是' - ',那么你可以在原生 JS 中使用 instr 来实现。
如果答案是全部 () 并且字段 1 中允许使用数字,并且框 2 之后的所有内容都可以查看正则表达式以在数字结尾处进行分隔。
编辑
这是可能的,但你正在解析文本,这从来都不是很好。如何将数字放在一个属性中,将运营商放在另一个属性中,当您选择项目时,使用 jquery 的 attr 命令将它们拉出来?
【讨论】: