【问题标题】:Extract substring out of a string using Javascript使用Javascript从字符串中提取子字符串
【发布时间】:2011-04-27 20:52:43
【问题描述】:

全部,

我在 javascript 中有以下 html 作为字符串。我需要提取“value”中的字符串,用指定的分隔符“|”分割并放入两个变量。

var html = '<div><input name="radBtn" class="radClass" style="margin:auto;" 
       onclick="doSomething();"
       value="Apples|4567" type="radio">
</div>';

需要的输出是两个具有以下值的变量:

fruitName = Apples
fruitNumber = 4567

注意:可以有多个同名的单选按钮。

【问题讨论】:

  • 在此线程中回答的每个人都没有阅读问题。它不是 HTML,它是一个字符串。

标签: javascript jquery regex


【解决方案1】:

如果你可以假设你的 HTML 总是很简单(即只有一个值属性,没有其他看起来像值属性的东西),那么你可以这样做:

var fruit = html.match(/value="(.*?)\|(.*?)"/);
if (fruit) {
    fruitName = fruit[1];
    fruitValue = fruit[2];
}

【讨论】:

  • 我真的需要变得更能胜任正则表达式。 ://
【解决方案2】:

你可以这样做:

$("input[name='radBtn']").click(function(){
    var val = $(this).val();
    val = val.split("|");

    var fruit = val[0];
    var number = val[1];
});

【讨论】:

    【解决方案3】:
    var div = document.createElement("div");
    div.innerHTML = '<input name="radBtn" class="radClass" style="margin:auto;" onclick="doSomething();" value="Apples|4567" type="radio"></div>';  
    
    var str = div.getElementsByTagName("input")[0].split("|");
    
    var fruitName = str[0];
    var fruitNumber = str[1];
    
    /*
    Now,
    fruitName = "Apples"
    and
    fruitNumber = 4567
    */
    

    【讨论】:

    • 我认为您希望在 defaultValue 属性或 value 属性而不是 input 元素本身上调用 split。
    【解决方案4】:

    这是一种方法:

    var fruit = (function() {
        var fruits = $(html).find('.radClass').val().split('|');
        return {
            fruitName: fruits[0],
            fruitNumber: fruits[1]
        };
    }());
    

    你会得到一个像这样的对象:

    fruit.fruitName // Apples
    fruit.fruitNumber // 4567
    

    【讨论】:

      【解决方案5】:
      var coolVar = '123-abc-itchy-knee';
      var partsArray = coolVar.split('-');
      
      // Will result in partsArray[0] == '123', partsArray[1] == 'abc', etc
      

      见:How to parse a string in javascript?

      【讨论】:

      • 我如何首先从 html 字符串中获取值?
      【解决方案6】:
      $(function() {
          $("INPUT[name=radBtn]").click(function() {
              var value = $(this).val().split("|");
              var fruitName = value[0];
              var fruitNumber = value[1];
      
              // Add to an array, ajax post etc. whatever you want to do with the data here
          });
      });
      

      【讨论】:

      • 我无法点击单选按钮..它在一个html字符串中..请再次查看问题..谢谢
      • 啊,我明白了,您想在附加到 DOM 之前从字符串中获取值。请问为什么?
      猜你喜欢
      • 2017-04-01
      • 2015-05-10
      • 2017-01-31
      • 2011-07-21
      • 1970-01-01
      • 2020-09-02
      • 1970-01-01
      • 2018-09-29
      相关资源
      最近更新 更多