搜索字符串中的通配符
Wild cards in a search string
我正在尝试建立一个函数,以检查是否通配符将在搜索字符串中使用。
的例子。
%name% var search_type = "LIKE"
%name var search_type = "LIKE"
name% var search_type = "LIKE"
name var search_type = "EQUALS"
如何写一个javascript正则表达式来证实4种类型的例子之间?
<html>
<head>
<script type="text/javascript">
function test() {
var name = document.getElementById("search").value
}
</script>
</head>
<body>
<input type="text" id="search">
<input onclick="test()" type="submit" value="Submit">
</body>
</html>
这是一个DEMO
function test() {
var name = document.getElementById("search").value;
var search_type = '';
if (name.indexOf('%') > -1) {
search_type = 'like';
} else {
search_type = 'equals';
}
alert(search_type);
return search_type;
}
无论%
符号在文本中的位置如何,上述代码都将起作用。如果您对应该位于开始或结束或两者都有兴趣,请使用下面的代码。
演示
function test() {
var name = document.getElementById("search").value;
var position = name.indexOf('%');
var search_type = '';
if (position === 0 || position === name.length) {
search_type = 'like';
} else {
search_type = 'equals';
}
alert(search_type);
return search_type;
}
根据您的示例,search_type
应该是LIKE
的唯一指示是该值包含百分比符号%
。在这种情况下,你可以使用indexOf('%')
来检查它是否有一个:
var search_type = (someValue.indexOf('%') > -1) ? 'LIKE' : 'EQUALS';
使用当前代码:
function test() {
var search_type = (document.getElementById("search").value.indexOf('%') > -1) ? 'LIKE' : 'EQUALS';
// any other processing required...
return search_type;
}
此外,如果您想明确%
必须位于字符串的开头、结尾或开头+结尾,并且将为每个使用不同的修饰符,则可以使用递增标志:
var search_flag = 0;
var value = document.getElementById('search').value;
if (value.substring(0, 1) == '%') search_flag += 1;
if (value.substring(value.length - 1) == '%') search_flag += 2;
var search_type = (search_flag == 0) ? 'EQUALS' : 'LIKE';
if (search_flag == 1) {
// % is at beginning of string
// do stuff...
} else if (search_flag == 2) {
// % is at end of string
// do stuff...
} else if (search_flag == 3) {
// % is at beginning and end of string
// do stuff...
}
如果你只需要一个简单的EQUALS/LIKE
检查,这是完全不必要的,但如果你需要特定的通配符位置,这是可扩展的。
function test() {
var name = document.getElementById("search").value;
if( name.substring(0,1) == "%" || name.substring(name.length - 1, name.length) == "%"){
var search_type = "LIKE";
}
else {
var search_type = "EQUALS";
}
}
相关文章:
- JavaScript中的通配符日期形式
- 使用javascript's替换为通配符以更改字符串中的width属性
- 如何在字符串 Java 中获取通配符的值
- 字符串中的通配符替换
- 带字符串的正则表达式包含Javascript中带通配符/最小值、最大长度的数字
- Javascript中的通配符字符串比较
- 正则表达式将字符串计数与通配符匹配
- 正则表达式与字符串的开头和结尾完全匹配,中间有通配符
- 通过通配符字符串快速搜索数组
- 正则表达式匹配当前URL中的字符串,包括通配符
- 字符串比较中的星号通配符
- 包含带有通配符字符的选择器字符串
- 在javascript中使用通配符从字符串中获取子字符串
- 在另外两个字符串中修改通配符字符串
- 在搜索字符串中包含通配符的正则表达式
- JavaScript将当前url与带有通配符的字符串进行匹配
- .bat文件,以便使用通配符查找和删除字符串的一部分
- 搜索字符串中的通配符
- JavaScript RegExp使用通配符*和匹配字符串
- 通配符搜索(?, *)在字符串数组中使用javascript