Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.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 - Fatal编程技术网

javascript溢出以获取单词的一部分

javascript溢出以获取单词的一部分,javascript,Javascript,我尝试使用javascript spilt从What#a#u new%20day 我试过这样的代码: <script> var word="What#a_new%20day"; var newword = word.split("%20", 1).split("_", 2); alert(newword); </script> var word="What#a_new%20day"; var newword = word.substr(word.indexOf('new

我尝试使用javascript spilt从
What#a#u new%20day

我试过这样的代码:

<script>
var word="What#a_new%20day";
var newword = word.split("%20", 1).split("_", 2);
alert(newword);
</script>
var word="What#a_new%20day";
var newword = word.substr(word.indexOf('new'),3)
alert(newword);

var word=“什么是新的%20天”;
var newword=word.split(“%20”,1).split(“\u2”);
警惕(新词);
但导致:

uncaughtypererror:objectwhat#a#u new没有方法“split”

也许有更明智的方法来获得我需要的信息。有人能帮我吗?谢谢。

返回一个数组,因此第二个
拆分
尝试对第一个返回的数组进行操作,而不是对字符串进行操作,这会导致TypeError。您还需要在第二次调用
split
后添加正确的索引,或者
newword
也将是一个数组,而不是您期望的字符串。将其更改为:

var newword = word.split("%20", 1)[0].split("_", 2)[1];
这将拆分
word
,然后拆分结果数组索引0处的字符串,并将新数组索引1处的字符串值分配给
newword

正则表达式

var word="What#a_new%20day";
var newword = word.match(/_(.+)%/)[1];
alert(newword);
这将返回正则表达式(
(…)
)中捕获的第一个(
[1]
)组(
(…)
),该组是
,后跟任何字符(
)一次或多次(
+
),后跟
%
返回一个数组:

字分割(“%20”,1)

提供一个数组,因此您无法执行以下操作:


(上面的结果)。拆分(“25;”,2)

拆分的结果是数组,而不是字符串。所以你需要做的是

<script>
var word="What#a_new%20day";
var newword = word.split("%20", 1)[0].split("_", 2);
alert(newword);
</script>

var word=“什么是新的%20天”;
var newword=word.split(“%20”,1)[0]。split(“\u1”,2);
警惕(新词);

请注意[0]

如果您的目标是拆分,请尝试拆分,但在性能方面,最好执行以下操作:

<script>
var word="What#a_new%20day";
var newword = word.split("%20", 1).split("_", 2);
alert(newword);
</script>
var word="What#a_new%20day";
var newword = word.substr(word.indexOf('new'),3)
alert(newword);
实例:

Split在文本中搜索
%20
的所有实例,而indexOf查找第一个实例,substr在性能方面也相当便宜


关于拆分与子字符串的JsPerf统计(一般情况):

您试图解决的一般问题是什么?这是一个非常具体的例子,所以你可能会得到很多不一定能解决一般问题的具体回答。请不要链接到w3schools。它不是学习任何东西的好资源。看见这里是等效的MDN页面:+1,用于提供一个通常可能更有用的答案。