2

我有一个正则表达式,它匹配精确的单词,如果中间有空格,它返回 false。我怎样才能做到这一点?即使我之间有空格,它也必须返回 true。前任:

var str1 = "This is a fruit";
var str2 = "this is afruit";

str2 = str2.toLowerCase();

if(str2.toLowerCase().match(/a fruit/)){
  alert("matched");
  return true;
} 
return false;

在上面的 if 条件中,我提到了 .match(/a fruit/) 它会返回 false,因为我也在考虑空间。我不想这样做。即使它是“水果”或“水果”,它也必须让我回归真实。我是正则表达式的新手请帮助..我被困在这里。

4

4 回答 4

6
/a ?fruit/

或者,更漂亮,

/a\s?fruit/

?表示前一个字符是可选的。\s是任何一种空格。

于 2012-11-21T05:45:11.580 回答
0

根据Javascript 正则表达式参考

str2 = str2.toLowerCase();
does_it_match = str2.match(/[a-z ]+/);
if (does_it_match) { return true; }
return false;
于 2012-11-21T05:46:01.220 回答
0
var str1 = "This is a fruit";
var str2 = "this is afruit";


str1 = str1.replace(/\s/g, '');
str2 = str2.replace(/\s/g, '');

这将从字符串中删除空格。然后将两者都转换为小写并按原样进行比较。

于 2012-11-21T05:48:07.717 回答
0

使用下面的例子

var str1 = "This is a fruit";
var str2 = "this is afruit";

str2 = str2.toLowerCase();
var matchString = 'a fruit';
matchString = matchString.replace(/\s+/g,'');
if(str2.toLowerCase().match(matchString)){
  alert("matched");
  return true;
} 
return false;
于 2012-11-21T05:54:53.840 回答