如何使用正则表达式匹配包含和不包含空格的字符串?

时间:2012-11-21 05:41:59

标签: javascript regex

我有一个正则表达式,它匹配精确的单词,如果空格介于两者之间,则返回false。我怎样才能实现这一目标?即使我之间有空格,它也必须返回true。 EX:

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 /)它会让我失意,因为我也在考虑空间。我不想这样做。如果它是“水果”或“水果”它必须让我回归真实。我是正规表达的新手 请帮忙..我被困在这里。

4 个答案:

答案 0 :(得分:3)

/a ?fruit/

或者,更漂亮,

/a\s?fruit/

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

答案 1 :(得分:0)

根据Javascript regular expressions reference

str2 = str2.toLowerCase();
does_it_match = str2.match(/[a-z ]+/);
if (does_it_match) { return true; }
return false;

答案 2 :(得分:0)

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


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

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

答案 3 :(得分: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;