尝试在:
符号之后获取所有字母数字字符,除非存在空格,在这种情况下,空格将是终止标记。
// the following should all return foo
text = 'a :foo bar';
text = 's:foo';
text = ':foo, test';
试过这个,但除非有空间,否则不会得到东西。我可能需要正则表达式,但不确定如何构建
var t = following.substring(following.lastIndexOf(":")+1,following.lastIndexOf(' '));
答案 0 :(得分:1)
我建议使用正则表达式,例如(尽管未经测试):
var result = text.match(/:([a-zA-Z0-9]*)\s/)[1];
参考文献:
答案 1 :(得分:1)
如何:/:([a-zA-Z0-9]+)/
':foo, test'.match(/:([a-zA-Z0-9]+)/)[1] //returns foo
's:foo'.match(/:([a-zA-Z0-9]+)/)[1] //returns foo
':foo, test'.match(/:([a-zA-Z0-9]+)/)[1] //returns foo
这些RegEx使用两部分:
:
找到:
后跟[a-zA-Z0-9]+
任何字母数字字符注意强>: 由于此Regulars表达式与我指定的字符类型相匹配,因此在这种情况下不需要“在空间中断”,因为它只会在
:
之后匹配字母数字字符,它将自动排除空格,逗号等任何其他字符方括号内包含的字符将使该字符成为可能的匹配。
答案 2 :(得分:0)
您可以像这样使用正则表达式
/:([\w]+)[\W]/g