2013-10-02 84 views
0

我该怎么做搜索,如果一个JavaScript字符串包含以下模式:检测在Javascript字符串特定模式的存在

“@ aRandomString.temp”

我想知道如果字符串包含@字符,然后是任何字符串,然后是“.temp”字符串。

感谢

+0

带有“随机字符串”的模式不是“特定字符串”:-)您可能会修正您的标题... – Bergi

回答

0

使用indexOf到字符串中查找的字符串。

var string = "@aRandomString.temp"; 
var apos = string.indexOf("@"); 
var dtemp = string.indexOf(".temp", apos); // apos as offset, invalid: ".temp @" 
if (apos !== -1 && dtemp !== -1) { 
    var aRandomString = string.substr(apos + 1, dtemp - apos); 
    console.log(aRandomString); // "aRandomString" 
} 
+0

对于任何向下投票的人,谨慎解释? – Halcyon

+0

我不明白(+1),但你的解决方案有点复杂:-)另外OP只想知道匹配是否存在,而不是随机字符串是什么。 – Bergi

0

您可以使用匹配功能。匹配期望的正则表达式为 。

function myFunction() 
{ 
    var str="@someting.temp"; 
    var n=str.test(/@[a-zA-Z]+\.temp/g); 
} 

这里是一个演示:http://jsbin.com/IBACAB/1

+0

'.temp'部分怎么样?另外,使用'test'而不是'match'。 – Bergi

+0

我在正则表达式中:(/@[a-a-A-Z]+\.temp – Diego

+0

@Bergi我假设字符串只包含字母 – Diego

0

你可以试试这个

var str = "@something.temp"; 

if (str.match("^@") && str.match(".temp$")) { 

} 

demo

+0

问题要求“包含”,而不是“is”。另外,忘了逃避你的正则表达式,你应该使用'test'而不是'match' – Bergi

1

这一个班轮应该使用regex#test(Strng)做的工作:

var s = 'foo bar @aRandomString.temp baz'; 
found = /@.*?\.temp/i.test(s); // true 
相关问题