【问题标题】:how to split/take away unwanted characters如何拆分/删除不需要的字符
【发布时间】:2010-09-02 01:31:26
【问题描述】:

我有例如:(111) 222-3333 - Verizon ...我想在我选择这个时填写两个文本框。第一个文本框有 (111) 222-333,第二个文本框有 Verizon。用 jquery 可以吗?

【问题讨论】:

    标签: jquery


    【解决方案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 来测试它。

    【讨论】:

    • @Seth -- 嘿,你的建议很棒。与其返回 (111) 222-3333,不如只返回 1112223333?
    • 为此,您需要添加更多捕获组,然后将它们连接在一起 - 请参阅编辑。
    【解决方案2】:

    有两种方法,你可以使用

    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.

    【讨论】:

      【解决方案3】:

      你能再描述一下吗?这里的分隔符是什么?如果是' - ',那么你可以在原生 JS 中使用 instr 来实现。

      如果答案是全部 () 并且字段 1 中允许使用数字,并且框 2 之后的所有内容都可以查看正则表达式以在数字结尾处进行分隔。

      编辑

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

      【讨论】:

      • @ griegs -- 好吧,我有一个选择列表框,里面有电话号码和运营商。我想要实现的是,当我选择一个带有运营商的号码时,我希望第一个文本框只显示电话号码,第二个文本框只显示运营商。 Jquery可以做到这一点吗?如果是这样,我将如何解决这个问题?
      猜你喜欢
      • 1970-01-01
      • 2022-01-26
      • 1970-01-01
      • 1970-01-01
      • 2020-04-09
      • 2016-10-27
      • 1970-01-01
      相关资源
      最近更新 更多