如何分割/带走不需要的角色

时间:2010-09-02 01:31:26

标签: jquery

我有例如:(111)222-3333 - Verizon ...我想在两个文本框中选择此填充时。第一个文本框有(111)222-333,第二个文本框有Verizon。这可能与jquery有关吗?

3 个答案:

答案 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.*)")

check documentation on selectors.

答案 2 :(得分:0)

你能再说一点吗?这里的分离器是什么?如果它是' - '那么你可以使用instr。在原生JS中完成它。

如果答案是全部()并且字段1中允许数字,并且过去的所有内容都是第二个框,那么可以查看正则表达式来进行数字结束的分离。

修改

它是可能的,但你正在解析文本,这永远不会好。如何将数字放在属性中,将载体放在另一个属性中,当您选择项目时,使用jquery的attr命令将它们拉出来?