我试图弄清楚如何检查特定单词的字符串,如果该单词存在则设置一个新变量
我有以下jQuery代码:
val= $('#' + this_id).val();
val可以包含不同的单词串。
我知道我能做到:
if (/Approve/i.test(val)) {
msg = "Approve"
}
但这也匹配,已批准..我如何仅匹配批准? 我最终会这样做:
如果val包含Approve msg =" Approve"
如果val包含已批准的msg ="已批准"
如果val包含Reject msg ="拒绝"
由于
答案 0 :(得分:7)
您可以使用word boundary (\b
):
if (/\bApprove\b/i.test(val)) {
msg = "Approve";
}
根据Regular expression tutorial - word boundary,
有三种不同的职位符合词边界:
- 在字符串中的第一个字符之前,如果第一个字符是单词字符。
- 在字符串中的最后一个字符之后,如果最后一个字符是单词字符。
- 字符串中的两个字符之间,其中一个是单词字符,另一个不是单词字符。
答案 1 :(得分:1)
使用此功能。
if (/^Approve$/i.test(val)) {
var msg = "Approve"
}
^
标记start
$
标记end
function check(val) {
var msg;
if (/^Approve$/i.test(val)) {
msg = "Approve";
} else if (/^Approved$/i.test(val)) {
msg = "Approved";
} else if (/^Reject$/i.test(val)) {
msg = "Rejected";
} else {
msg = "Error";
}
alert(msg);
}
check("Approve");
check("Approved");
check("Reject");
check("Hello");