我有以下字符串示例:
test_client_guide..mydomain.fr.global.com=198787879898977979
我想在变量中提取以下字符串:
.mydomain.fr.global.com
实际上,我想获取第一个“。”之间的字符串。和“=”字符。
我该怎么做?
非常感谢
答案 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)
您可以使用substr
和indexOf
:
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)