动态搜索字符串两点之间的子字符串

时间:2014-01-25 08:18:56

标签: javascript jquery

如何动态地在两个指定值之间的字符串中搜索和保存子字符串。 例如,如果a具有以下字符串集。

var string1 = "This is.. my ..new string";
var string2 = "This is.. your ..new string";

现在该怎么办,如果我想保存两个点之间的转换,“我的”和“你的”在这种情况下,从字符串,可能在另一个变量或可能删除除“我的”之外的所有内容。我知道可以使用indexof(“my”),但这不是动态的。

2 个答案:

答案 0 :(得分:2)

正则表达式是解决此类问题的方法。你可以在谷歌上做一些。那里有很多文档和教程。

对于您的特定问题,要在“..”之间获取字符串,您可以使用以下代码

var match1 = string1.match('\\.\\.\\s*(.+?)\\s*\\.\\.');
match1 = match1 ? match1[1] : false;
var match2 = string2.match('\\.\\.\\s*(.+?)\\s*\\.\\.');
match2 = match2 ? match2[1] : false;

答案 1 :(得分:0)

试试这个脚本:D

/* I have escaped the dots | you can add the spaces in the delimiter if that is your delimiter like*/
var delimiter = '\\.\\.'; 
var text = "This is.. your ..new ..test.. string";

/* this will match anything between the delimiters and return an array of matched strings*/
var res = text.match(new RegExp(delimiter + '(.*?)' + delimiter,'g'));


/*res will be [' your ', 'test'] */
/* I just realized that it does not match "..new ..", which should be a valid match. */;

/* to remove the delimiter string from your results */
 for(i in res) { 
  res[i]=res[i].replace(new RegExp(delimiter,'g'),'');
 };
 console.log(res);