jquery中的爆炸字符串

explode string in jquery

本文关键字:字符串 jquery      更新时间:2023-09-26

我通过ajax得到以下结果。

row=Shimla|1|http://vinspro.org/travel/ind/

我想http://vinspro.org/travel/ind/从它。我已经使用了查找和拆分功能,但它不起作用。请告诉我怎样才能拿到?

var result=$(row).split('|');
    alert(result);

chrome显示以下错误

Uncaught Error: Syntax error, unrecognized expression: Shimla|1|http://vinspro.org/travel/ind/ 

split方法将创建一个数组。所以你需要在你的例子中访问第三个元素…

(数组以0为索引)您需要访问result[2]以获取url

var result = $(row).text().split('|');
alert( result[2] );

你没有给我们足够的信息来知道什么是row,确切地…因此,根据您获取变量row的方式,您可能需要执行以下操作之一。

  • 如果row是字符串,则row.split('|');
  • 如果是DOM元素,则$(row).text().split('|');
  • 如果是input元素,则$(row).val().split('|');

将方法拆分为数组。您可以使用索引访问单个值。

var result = $(row).val().split('|')[2]
alert(result);

var result = $(row).val().split('|');
alert(result[2]);

如果它是输入元素那么你需要使用$(row).val()来获取值..

否则,您需要使用$(row).text()$(row).html()

split函数使用您提供的分隔符分隔文本的每个部分,并且您提供了"|"。因此,结果将是一个包含"Shimla","1"answers"http://vinspro.org/travel/ind/"的数组。您可以操作它来获得第三个,"http://vinspro.org/travel/ind/",下面是一个例子:

var str="Shimla|1|http://vinspro.org/travel/ind/";
var n = str.split('|');
alert(n[2]); 

正如在其他答案中提到的,此代码将根据它是字符串($(str).split('|');),文本框输入($(str).val().split('|');)或DOM元素($(str).text().split('|');)而有所不同。

您也可以使用普通JavaScript来获取9个字符之后的所有内容,这将是"http://vinspro.org/travel/ind/"。下面是一个例子:

var str="Shimla|1|http://vinspro.org/travel/ind/";
var n=str.substr(9);
alert(n);

什么是row?

这两个都可能是正确的。

1)我假设你在javascript变量'行'中捕获ajax响应。如果是这样的话,这将成立。

var result=row.split('|');
    alert(result[2]);
否则

2)当$(row)jQuery对象时使用

var result=$(row).val().split('|');
    alert(result[2]);

[正如在另一个答案中提到的,您可能必须使用$(row).val()$(row).text()$(row).html()等,这取决于$(行)是什么。]

如果输入的id在

后面
<input type='text'  id='kg_row1' >

那么你就可以使用下面的jquery的split函数得到上面的explosion/split

  var kg_id = $(this).attr("id");
  var getvalues =kg_id.split("_");
  var id = getvalues[1];

Try This

var data = 'allow~5'; 
var result=data.split('~');
结果

alert(result[0]);

您可以创建两个jQuery插件函数来执行此任务。

我添加了一个链接示例,以显示在后续调用之间转换字符串是多么容易。这增加了一点开销,但展示了如何执行函数链以获得更好的可读性。

(function($) {
  $.sliceAfterIndex = function(str, index) {
    return str.slice(index);
  };
  $.sliceAfter = function(str, substr) {
    return $.sliceAfterIndex(str, str.indexOf(substr) + substr.length);
  };
  $.tokenAt = function(str, delimiter, index) {
    return str.split(delimiter)[index];
  };
  $.strChain = function(str) {
    return {
      __str: str,
      sliceAfterIndex: function(index) {
        this.__str = $.sliceAfterIndex(this.__str, index); return this;
      },
      sliceAfter: function(substr) {
        this.__str = $.sliceAfter(this.__str, substr); return this;
      },
      tokenAt: function(delimiter, index) {
        this.__str = $.tokenAt(this.__str, delimiter, index); return this;
      },
      value: function(delimiter, index) {
        return this.__str;
      }
    };
  };
})(jQuery);
var res = 'row=Shimla|1|http://vinspro.org/travel/ind/';
// Nesting (inside-out)
console.log($.tokenAt($.sliceAfter(res, 'row='), '|', 2));
// Chaining (ltr)
console.log($.strChain(res).sliceAfter('row=').tokenAt('|', 2).value());
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>