Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何检索到同一字符之间的字符串_Javascript_String - Fatal编程技术网

Javascript 如何检索到同一字符之间的字符串

Javascript 如何检索到同一字符之间的字符串,javascript,string,Javascript,String,我知道如何使用substring(),但这里有一个问题,我想从未知字符串长度中检索一个介于两个“\”之间的数字。这是我的字符串的例子 7_2 八里 我想要28号。我怎样才能这样做呢 谢谢。Regex match中的斜线构成了它的内容正则表达式 \是按字面意思理解的 (和)用于以后检索内容(目标编号) \d是一个数字字符 +是“一个或多个” 最后的[1]访问从第一组参数匹配的内容,即一个或多个(+)数字(\d) 环 将其拆分为一个数组,然后获取第二个元素 索引 找到起点和终点。使用鲜为

我知道如何使用substring(),但这里有一个问题,我想从未知字符串长度中检索一个介于两个“\”之间的数字。这是我的字符串的例子

7_2 八里

我想要28号。我怎样才能这样做呢

谢谢。

Regex match中的斜线构成了它的内容正则表达式

  • \
    是按字面意思理解的

  • 用于以后检索内容(目标编号)

  • \d
    是一个数字字符

  • +
    是“一个或多个”

最后的
[1]
访问从第一组参数匹配的内容,即一个或多个(
+
)数字(
\d

环 将其拆分为一个数组,然后获取第二个元素

索引
找到起点和终点。使用鲜为人知的第二个参数indexOf。这比lastIndexOf更有效,因为它保证在
\uu
之间给出第一个数字,即使有两个以上的下划线。

首先找到
\u
的索引,然后找到
\u
的下一个位置。然后得到它们之间的子字符串

var data = "7_28_li";
var idx = data.indexOf("_");
console.log(data.substring(idx + 1, data.indexOf("_", idx + 1)));
# 28
你可以更好地理解,就像这样

var data=“7_28_li”;
var first=data.indexOf(“”);
var next=data.indexOf(“\ux”,first+1);
log(data.substring(first+1,next));
# 28

注意:第二个参数是指定从何处开始查找。

最简单的方法可能是在字符串上调用
split
,使用分隔符(“\u1”)作为参数。它将返回一个包含7、28和li元素的数组,因此您可以选择中间的一个

“7-28-li”。拆分(“-1”)

如果它始终是3个元素,这将起作用。如果更多,则将length属性除以2,然后将其加层以获得正确的元素

var splitstring = "7_28_li".split("_")
console.log(splitstring[Math.floor(splitstring.length/2)]);

我不确定您想如何处理偶数长度的字符串,但您所要做的就是设置一个if语句,然后执行任何您想执行的操作。

如果您知道将有2个下划线,您可以使用此命令

 var str = "7_28_li";
 var res = str.substring(str.indexOf("_") +1, str.lastIndexOf("_"));
如果要查找前两个下划线之间的字符串

var str = "7_28_li";
var firstIndex = str.indexOf("_");
var secondIndex = str.indexOf("_", firstIndex+1);
var res = str.substring(firstIndex+1, secondIndex);

您可以使用
索引of
找到
\uuu
位置,不是吗?然后,你可以使用
子字符串
,看起来你把Meredith的答案放在了编辑栏的底部。这可能会对他们有所帮助。@Brad我实际上是独立提出的。
var data = "7_28_li";
var idx = data.indexOf("_");
console.log(data.substring(idx + 1, data.indexOf("_", idx + 1)));
# 28
var splitstring = "7_28_li".split("_")
console.log(splitstring[Math.floor(splitstring.length/2)]);
 var str = "7_28_li";
 var res = str.substring(str.indexOf("_") +1, str.lastIndexOf("_"));
var str = "7_28_li";
var firstIndex = str.indexOf("_");
var secondIndex = str.indexOf("_", firstIndex+1);
var res = str.substring(firstIndex+1, secondIndex);