无法使用空格与jQuery匹配字符串

时间:2017-01-16 12:45:03

标签: javascript jquery html

我正在尝试将字符串匹配到另一个字符串中,但我无法做到:

我希望根据我正在键入的另一个字符串匹配一个字符串,但我得到" false"当我"问"如果"阿斯顿马丁"从" Aston"开始。

编辑:

请注意,当您输入"时,过滤器是"在这种情况下,我在#34; Aston"的末尾有一个空格。

重要提示:

根据@mplungjan的回答,我对过滤字符串末尾的空格有另一个问题。测试它,我得到了charCode 160,所以我使用的解决方案是将替换应用于两个字符串:

DerivedClassB



.replace(String.fromCharCode(160), ' ')

var value = $("#brand").text();
var brand = $("#filter").val();

alert(brand.substr(0, value.length).toUpperCase() == value.toUpperCase());




4 个答案:

答案 0 :(得分:1)

你可以这样试试:

x = "Aston Martin";

if (x.match("Aston")) {
     // Code
}

更新1:

如果你想要你的字符串应该以特定的单词开头,并且你想在最后匹配空格,你可以这样做:

if(x.match(/^Aston /)) {

}

答案 1 :(得分:1)

这会有用,不要忘记输入值中有空格吗?



var value = $("#brand").text();
var brand = $("#filter").val();

alert(!!value.toUpperCase().match(brand.toUpperCase()));

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<div id="brand">Aston Martin</div>
<input id="filter" value="Aston ">
&#13;
&#13;
&#13;

答案 2 :(得分:1)

使用indexOf == 0将显示以品牌开头的字符串INCLUDING值中的空格!

&#13;
&#13;
var brand = $("#brand").text();
var value = $("#filter").val();

console.log(">"+brand+"<",">"+value+"<",brand.toUpperCase().indexOf(value.toUpperCase())==0);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<div id="brand">Aston Martin</div>
<input id="filter" value="Aston ">
&#13;
&#13;
&#13;

的onkeyup:

&#13;
&#13;
$("#filter").on("keyup", function() {
  var brand = $("#brand").text();
  brand = brand?brand.toUpperCase():"";
  var value = $("#filter").val();
  value = value?value.toUpperCase():"";
  if (brand && value) {
    console.log(brand, value,brand.indexOf(value) == 0); // same as regex /^word /
  }
  else {
    console.log("Something is empty");
  }
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<div id="brand">Aston Martin</div>
<input id="filter" value="Aston ">
&#13;
&#13;
&#13;

答案 3 :(得分:0)

请使用这个:

value.toUpperCase().indexOf(brand.toUpperCase())>=0?true:false