Jquery正则表达式测试字符串

时间:2015-08-03 14:14:39

标签: javascript jquery regex

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

我有以下jQuery代码:

val= $('#' + this_id).val();

val可以包含不同的单词串。

我知道我能做到:

if (/Approve/i.test(val)) {
    msg = "Approve"
}

但这也匹配,已批准..我如何仅匹配批准? 我最终会这样做:

如果val包含Approve msg =" Approve"

如果val包含已批准的msg ="已批准"

如果val包含Reject msg ="拒绝"

由于

2 个答案:

答案 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");

相关问题