如何动态地在两个指定值之间的字符串中搜索和保存子字符串。 例如,如果a具有以下字符串集。
var string1 = "This is.. my ..new string";
var string2 = "This is.. your ..new string";
现在该怎么办,如果我想保存两个点之间的转换,“我的”和“你的”在这种情况下,从字符串,可能在另一个变量或可能删除除“我的”之外的所有内容。我知道可以使用indexof(“my”),但这不是动态的。
答案 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);