不以 "My" 或 "By" 开头的字符串的正则表达式

Regex for strings not starting with "My" or "By"

当我的字符串不以“MY”和“BY”开头时,我需要匹配正则表达式。

我试过类似的东西:

r = /^my&&^by/

但它对我不起作用

例如

mycountry = false ; byyou = false ; xyz = true ;

您可以测试字符串是否不以 bymy 开头,不区分大小写。

var r = /^(?!by|my)/i;

console.log(r.test('My try'));
console.log(r.test('Banana'));

没有!

var r = /^([^bm][^y]|[bm][^y]|[^bm][y])/i;

console.log(r.test('My try'));
console.log(r.test('Banana'));
console.log(r.test('xyz'));

试试这个(正则表达式不区分大小写):

  var r = /^([^bm][y])/i; //remove 'i' for case sensitive("by" or "my")

console.log('mycountry = '+r.test('mycountry'));
console.log('byyou= '+r.test('byyou'));
console.log('xyz= '+r.test('xyz'));

console.log('Mycountry = '+r.test('Mycountry '));
console.log('Byyou= '+r.test('Byyou'));

console.log('MYcountry = '+r.test('MYcountry '));
console.log('BYyou= '+r.test('BYyou'));

如果您只关心字符串开头的特定文本,那么您可以使用最新的 js 字符串方法 .startsWith

  let str = "mylove";

  if(str.startsWith('my') || str.startsWith('by')) {
    // handle this case
  }