javascript 使用字符串匹配而非索引捕获字符串的子字符串

javascript capture substring of string using string matching and not indexes

您好,我是 Javascript 的新手,我正在尝试了解如何从另一个字符串中提取子字符串。

我知道 substring() 方法捕获从起始索引到结尾的字符串。

但在我的例子中,我想捕获一个从 after"val=" 开始一直到超字符串末尾的字符串。

想法?

谢谢

您可以使用 indexOf:

var text = "something val=hello";
var result = text.substr(text.indexOf("val=") + 4);
alert(result);

或者像您的标签建议的那样使用正则表达式:

var text = "something val=hello";
var result = /\bval=(.+)/.exec(text)[1];
alert(result);

当然,在这两种情况下,您都应该注意错误情况(例如,当 val= 不在字符串中时应该发生什么)。

var str = "val=hello world";
var idx = str.lastIndexOf('=');
var result = str.substring(idx + 1);

您最好的选择可能是先阅读此内容:https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem

然后继续:How can I get query string values in JavaScript?

您可以使用 substr / substring:

var identifier = "val=";
var text = "your text val=foo";

var value = text.substring(text.indexOf(identifier) + identifier.length);

regular expression, for example using the string's method match:

var text = "your text val=foo";
var matches = text.match(/val=([\s\S]*)/);
var value = matches && matches[1];