【问题标题】:How to get a particular text form a string in jquery?如何从jquery中的字符串中获取特定文本?
【发布时间】:2015-04-13 11:18:16
【问题描述】:

如何从文本框(字符串)中提取特定值并使用 j-query 将其放入另一个文本框中。

假设该字符串在 textbox1 中

<input type="text" id="full-name" value="HYDERABAD DECAN [HYB]">

HYDERABAD DECAN [HYB]

我想得到:

<input type="text" id="code-name" value="HYB">

从'[......]'下的textbox1获取值,即HYB并在textbox2值'HYB'上设置值

如何

【问题讨论】:

  • 如果全名值="HYDERABAD",则代号值="HYDERABAD"。如何添加此检查?我已经使用过代码: $('#code-name').val($('#full-name').val().split("[")[1].split("]")[0 ]);稍后我想添加这个条件。

标签: javascript jquery string jquery-ui


【解决方案1】:

你可以使用:

 var fname= $('#full-name').val();
 var word = /\[(.*?)\]/g;
 var wordarr=[]
 for(m = word.exec(fname); m; m = word.exec(fname)){
    wordarr.push(m[1])
 }
 $('#code-name').val(wordarr.join(','));

Working Demo

【讨论】:

  • 为什么需要.*?。我认为.* 就足够了。不是吗?
  • @VigneswaranMarimuthu:因为这在多个方括号的情况下不起作用。
【解决方案2】:

var result = "HYDERABAD DECAN [HYB]".match(/\[(.*)\]/);

if (result) {
    alert(result[1]);
}

【讨论】:

    【解决方案3】:
    var val1=$("#full-name").val();
    var val2=val1.substring(val.lastIndexOf("[")+1,val.lastIndexOf("]"));
    $("#code-name").val(val2);
    

    【讨论】:

      【解决方案4】:

      另外一种选择:

      $("#full-name").on("blur",function(){
      
        
          if($(this).val()!="") //since user has to select from autocomplete dropdown I assume either there will be always a valid text or empty text
          {
             if($(this).val().split("[").length<2)
             {
                 $("#code-name").val($(this).val());
      
              }
             else
             {
              $("#code-name").val($(this).val().split("[")[1].split("]")[0]);
             }
          }
      });
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
      <input type="text" id="full-name" value="HYDERABAD DECAN [HYB]">
      <input type="text" id="code-name">

      FIDDLE DEMO

      【讨论】:

      • 我想在#full-name 值更改时将值放入#code-name@Guruprasad
      • 以及您的 #full-name 值如何更改。通过用户输入或其他方式??
      • 是的! #full-name 从 ajax 自动完成列表框中加载值。输入一些文本后,它将显示一个全名列表,如果用户单击其中任何一个,则所选文本将插入#full-name。我想将 [....] 下的值提取到 #code-name 值。我想你明白了。如果可以在 #full-name on change 事件上执行你的代码......然后帮助我@G.Rao
      • 我已经编辑了答案..使用blur文本框事件。
      • 这还有一件事? @先生。饶
      猜你喜欢
      • 1970-01-01
      • 2015-01-02
      • 1970-01-01
      • 1970-01-01
      • 2017-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多