var str="ls @a"
var ss = $.trim(str);
if(ss.match(/^[ls][s]+[@]{1}[a-zA-Z0-9u4E00-u9FA5]+/g))//ls_@xxx
document.getElementById("gg").innerHTML="yes";
else document.getElementById("gg").innerHTML="no";
代码如上,测试结果:
var str="ls @a" 输出yes
var str="ls @a" 输出no,希望输出yes
var str="ls @@a" 输出no
希望解决上面输出和希望中不一样的那一个,正则不知道写得对不对,主要是想:
ls开头,ls到第一个@之间任意空格,然后@之后紧跟一个或多个a-zA-Z0-9u4E00-u9FA5
ls_+@a-zA-Z0-9u4E00-u9FA5
求大神帮忙!!!!
var re = /^ls\s*@[a-zA-Z0-9\u4E00-\u9FA5]+/g;
var gg = document.getElementById("gg")
if (re.test(str)) {
gg.innerHTML="yes";
} else {
gg.innerHTML="no";
}
"\s*"
匹配0个或多个不可见符号,包括空格。
测试例子:
var arr = [
// true
'ls @a', // 单空格
'ls @a', // 多空格
'ls \xA0 @a', // 实体空格
'ls @aB呵呵', // 大小写中文
// false
'ls @@a',
'ls @a@b',
'ls @a-b',
'ls@a',
];
var re = /^ls[\s\xA0]+@(?!.*@)[a-z\d\u4E00-\u9FA5]+$/i;
arr.forEach(str => {
console.log(re.test(str), str);
});
你要的正则:
/^ls[\s\xA0]+@(?!.*@)[a-z\d\u4E00-\u9FA5]+$/i