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?
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];
您好,我是 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?
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];