首页 > 正则表达式如何匹配任意多个空格?

正则表达式如何匹配任意多个空格?

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
【热门文章】
【热门文章】