如何在特定单词后得到一个单词?
例如:我有这样的字符串:
string = "Price:$20 is very cheap"
我想得到结果:$ 20
如何使用Javascript进行此操作?
答案 0 :(得分:4)
您可以使用正则表达式:
var matches = /Price:(.*?) /g.exec("Price:$20 is very cheap");
if(matches.length > 1) {
var price = matches[1];
}
else {
// Not found
}
请注意,这将匹配单词 Price:后面的任何字符序列。如果在单词价格之后有空格,它将会中断。如果在20美元之后没有空间,它将会中断。您需要根据输入源使规则更复杂。
答案 1 :(得分:3)
将字符串拆分为:然后用空格。
string.split(":")[1].split(" ")[0]
答案 2 :(得分:3)
没有正则表达式的各种解决方案:
var s = 'Price:$20 is very cheap';
var s1 = s.slice(6, s.indexOf(' '));
var s2 = s.slice(s.indexOf(':') + 1, s.indexOf(' '));
var s3 = s.slice(s.indexOf('$'), s.indexOf(' '));
// s1 === s2 === s3 === "$20"
答案 3 :(得分:2)
var str = 'Price:$20 is very cheap';
var price = str.split(' ')[0].split(':')[1]; // $20
答案 4 :(得分:1)
var matches = /Price:(\$\d+)/.exec(string)
matches[1];//"$20"
答案 5 :(得分:1)
您可以使用string.split(":")[1].split(" ")[0]
或者您可以使用str.substring();
&组合str.indexOf();
。小提琴示例:
答案 6 :(得分:1)
使用正则表达式是一种更好的方法,因为字符串方法无法在所有情况下返回正确的答案。