Javascript分裂成了这个词的一部分
javascript spilt to get part of the word
我尝试使用javascript spilt从What#a_new%20day
中获取部分单词:new
我试过这样写代码:
<script>
var word="What#a_new%20day";
var newword = word.split("%20", 1).split("_", 2);
alert(newword);
</script>
但导致:
Uncaught TypeError: Object What#a_new has no method 'split'
也许有更聪明的方法得到我需要的单词。有人能帮我吗?谢谢。
split
返回一个数组,因此第二个split
试图操作第一个CC_5返回的数组,而不是字符串,这会导致TypeError。您还需要在第二次调用split
之后添加正确的索引,否则newword
也将是一个数组,而不是您期望的String。改为:
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);
返回regex (_(.+)%
)中的第一个捕获组([1]
),即_
后面跟着任意字符(.
)一次或多次(+
)后面跟着%
。
拆分的结果是一个数组,而不是字符串。所以你需要做的是
<script>
var word="What#a_new%20day";
var newword = word.split("%20", 1)[0].split("_", 2);
alert(newword);
</script>
注意[0]
split返回一个数组:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/split
词。分割(" % 20 ",1);
给出一个数组,所以你不能这样做:
(上面的结果)。分割(" _ ",2);
如果分割是你想要的,那就去做吧,但从性能角度来看,这样做会更好:
var word="What#a_new%20day";
var newword = word.substr(word.indexOf('new'),3)
alert(newword);
实例:http://jsfiddle.net/qJ8wM/
Split搜索文本中%20
的所有实例,而indexOf查找第一个实例,并且substr在性能方面也相当便宜。
JsPerf对分割与子字符串的统计(一般情况):http://jsperf.com/split-vs-substring
- 获取@ResponseBody的一部分作为主干和Spring MVC控制器之间的参数
- 如何检查字符串的一部分与数组匹配
- 为什么可以't我使用了AJAX响应的一部分
- 仅重新加载网页的一部分
- 如何使用ViewCompiler手动编译DOM的一部分
- Regex提取URL返回数组的一部分;未定义”;
- Html地图对象-点击地图获取id的一部分
- 如何使用JavaScript提取此url的一部分
- 将字符串的一部分设置为数组的一部分
- 用数字单位替换字符串的一部分
- 如何对单个页面进行密码保护(这不是身份验证系统的一部分)
- 附加和删除输入值的一部分
- 仅对标题标记的一部分使用document.write
- 如何使表格的一部分变灰
- 通过JavaScript设置的表单字段的值不会作为$_POST的一部分传递给PHP脚本
- 将d3中饼图的一部分隔开
- 如何放置单独的ajax调用,使页面的一部分完全响应,而另一部分仍在加载
- 移除字符串(如果找到)移除JS中字符串的一部分
- 使用ajax加载页面的一部分
- Javascript分裂成了这个词的一部分