我正在尝试将字符串匹配到另一个字符串中,但我无法做到:
我希望根据我正在键入的另一个字符串匹配一个字符串,但我得到" 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());

答案 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;
答案 2 :(得分:1)
使用indexOf == 0将显示以品牌开头的字符串INCLUDING值中的空格!
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;
的onkeyup:
$("#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;
答案 3 :(得分:0)
请使用这个:
value.toUpperCase().indexOf(brand.toUpperCase())>=0?true:false