我有例如:(111)222-3333 - Verizon ...我想在两个文本框中选择此填充时。第一个文本框有(111)222-333,第二个文本框有Verizon。这可能与jquery有关吗?
答案 0 :(得分:1)
听起来像是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来测试它。
答案 1 :(得分:1)
两种方法,你可以使用
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.*)")
答案 2 :(得分:0)
你能再说一点吗?这里的分离器是什么?如果它是' - '那么你可以使用instr。在原生JS中完成它。
如果答案是全部()并且字段1中允许数字,并且过去的所有内容都是第二个框,那么可以查看正则表达式来进行数字结束的分离。
修改强>
它是可能的,但你正在解析文本,这永远不会好。如何将数字放在属性中,将载体放在另一个属性中,当您选择项目时,使用jquery的attr命令将它们拉出来?