Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 字符串中精确单词的Jquery正则表达式测试_Javascript_Jquery_Regex - Fatal编程技术网

Javascript 字符串中精确单词的Jquery正则表达式测试

Javascript 字符串中精确单词的Jquery正则表达式测试,javascript,jquery,regex,Javascript,Jquery,Regex,我试图找出如何检查字符串中的特定单词,如果该单词存在,则设置一个新变量 我有以下jQuery代码: val= $('#' + this_id).val(); val可以包含不同的字符串 我知道我能做到: if (/Approve/i.test(val)) { msg = "Approve" } 但这也符合,批准。。我如何仅批准匹配? 最终,我希望能做到: 如果val包含Approve msg=“Approve” 如果val包含Approved消息=“Approved” 如果val包含

我试图找出如何检查字符串中的特定单词,如果该单词存在,则设置一个新变量

我有以下jQuery代码:

val= $('#' + this_id).val();
val可以包含不同的字符串

我知道我能做到:

if (/Approve/i.test(val)) {
    msg = "Approve"
}
但这也符合,批准。。我如何仅批准匹配? 最终,我希望能做到:

如果val包含Approve msg=“Approve”

如果val包含Approved消息=“Approved”

如果val包含Reject msg=“Rejected”

谢谢

您可以使用:

根据,

有三种不同的位置可以作为单词边界:

  • 在字符串的第一个字符之前,如果第一个字符是单词字符
  • 如果最后一个字符是单词字符,则在字符串中最后一个字符之后
  • 在字符串中的两个字符之间,其中一个是单词字符,另一个不是单词字符
用这个

if (/^Approve$/i.test(val)) {
    var msg = "Approve"
}
^
标记
开始

$
标记
结束

功能检查(val){
var-msg;
如果(/^Approve$/i.test(val)){
msg=“批准”;
}否则,如果(/^Approved$/i.test(val)){
msg=“已批准”;
}否则如果(/^Reject$/i.test(val)){
msg=“拒绝”;
}否则{
msg=“错误”;
}
警报(msg);
}
检查(“批准”);
检查(“批准”);
检查(“拒绝”);

检查(“你好”)
由于某些原因,这对我来说失败,返回未定义的消息。@JeffVader更新了我的答案。@falsetru添加了一个
else
块。如何在动态变量中应用单词边界?我有
var regEx=new RegExp(k)在循环中&k对应于对象的键。@techie_28,
var regEx=new RegExp('\\b'+k+'\\b',i')
(如果它包含在正则表达式中具有特殊含义的字符,则需要转义
k
if (/^Approve$/i.test(val)) {
    var msg = "Approve"
}