Javascript:在具体单词后获取字词?

时间:2013-12-17 11:22:40

标签: javascript html

如何在特定单词后得到一个单词?

例如:我有这样的字符串:

string = "Price:$20 is very cheap" 

我想得到结果:$ 20

如何使用Javascript进行此操作?

7 个答案:

答案 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();。小提琴示例:

http://jsfiddle.net/PmcL3/

答案 6 :(得分:1)

使用正则表达式是一种更好的方法,因为字符串方法无法在所有情况下返回正确的答案。