求javascript js正则表达式匹配以@@开头@@结尾,不包含@@的字符串

2024-12-29 18:13:11
推荐回答(5个)
回答1:

var result =/^@@([.*])@@$/g;  //^开头$结尾  
var str = "@@dsfdsafds...@@";//要匹配的字符串
var val = result.exec(str);  // 返回一个数组.
var vals = /@@/g.test(val[0]); //对得出中间的字符串进行匹配并返回一个布尔值
if(vals){
    //字符串内含有@@
}else{
    //字符串内无@@
}

如果是要得到@@123@@中间的123的话则是:
var result =/^@@([.*])@@$/g;  //^开头$结尾  
var str = "@@dsfdsafds...@@";//要匹配的字符串
var val = result.exec(str);  // 返回一个数组.
var vals = val[0];            //得出中间的字符串




不知道对不对窝  (*^__^*) 我也是菜鸟

回答2:

//感觉不符合你要求,最好给个匹配效果实例
var str = "@@adsfafsd@@"; 
var result;
result = /^@@(.+)@@$/g.exec(str);
document.write(result[1]);

回答3:

var reg = /^@@[^@]*@@$/;

回答4:

正则表达式没有“不匹配”的功能的。比如[^abc]表示匹配不包含a,b,c3个字母以外的的字符,但没法匹配 不包含"abc"的字符串。
要实现这个功能靠一个正则表达式是不行的,只有通过一定的逻辑控制实现.
function regtest(input){
var reg1=/^@@.*@@.*@@$/;
var reg2=/^@@.*@@$/;
if(reg2.test(input)){ //匹配@@.......@@字符串
if(reg1.test(input)){
return false;
}else{ //再匹配@@...@@...@@这种字符串,成功则不符合要,其余的就符合要求了
return true;
}
}else{
return false;
}
}

回答5:

这个简单。正则表达式:

/@@(.*)@@/;

使用方式:
var re = @@(.*)@@/;
var result = re.exec(str);

如果匹配,result是非空的数组,第一个元素就是不包含@@的字符串。