从Javascript中的另一个String中提取String

时间:2014-01-23 14:26:34

标签: javascript regex string

我有以下字符串示例:

test_client_guide..mydomain.fr.global.com=198787879898977979

我想在变量中提取以下字符串:

.mydomain.fr.global.com

实际上,我想获取第一个“。”之间的字符串。和“=”字符。

我该怎么做?

非常感谢

6 个答案:

答案 0 :(得分:3)

您可以使用regular expressions

var string = 'test_client_guide..mydomain.fr.global.com=198787879898977979';
alert(string.replace(/^.*?\.(.+?)=.*$/, '$1'));

这将取代以下模式:

  • ^ - 字符串的开头
  • .*?\. - 在第一个.
  • 之前零个或多个字符
  • (.+?)= - 第一个=之前的一个或多个字符(捕获为$1
  • .*$ - 字符串结尾前的零个或多个字符

使用:

  • $1 - 上面的捕获

答案 1 :(得分:1)

使用正则表达式,例如:

^.*?\.(.*)=

会在第一个捕获组中为您提供所需的作品。

请参阅:http://rubular.com/r/WDIO27zriw

^:字符串的开头

.*?:匹配任何角色,非贪婪(?是使其不贪心的关键)

\.:匹配第一个. - 注意它必须被转义,因为.是正则表达式中的一个字符类(参见上一部分)

(.*):匹配任何字符(.)并将其放入捕获组( - ()

=:匹配=

答案 2 :(得分:1)

试试这个:

<script>
    var myString = "test_client_guide..mydomain.fr.global.com=198787879898977979";
    var str=myString.substring(myString.indexOf (".")+1,myString.indexOf("="));
    alert(str);
</script>

答案 3 :(得分:0)

您可以使用substrindexOf

执行此操作
var exampleString = "test_client_guide..mydomain.fr.global.com=198787879898977979";
var firstdot = exampleString.indexOf('.')+1;
var firsteq = exampleString.indexOf('=', firstdot);
exampleString = exampleString.substring(firstdot, firsteq);
//exampleString now contains the contents ".mydomain.fr.global.com"

这会在第一个句号之后从获取字符串,直到此后的第一个等号。

答案 4 :(得分:0)

您可以使用正则表达式

 ^.*?(\..*)=

编辑以生成编号组,因为Javascript不支持命名组

答案 5 :(得分:0)

这可能会有所帮助

var s="test_client_guide..mydomain.fr.global.com=198787879898977979";
var _s=s.substring(s.indexOf("mydomain."),s.length);
_s=_s.substring(_s.indexOf("="),0)
console.log(_s)

DEMO