在javascript中检查字符串中的子串

时间:2014-02-25 10:51:44

标签: javascript string

我想检查字符串java脚本中的特定字符出现,
以下是我需要的

  • 如果字符串之间只有一个点(。),我必须提醒it is a object例如:var text = 'ABC.DEF';
  • 如果字符串在最后有开放和结束括号() 字符串我必须提醒it is a function
    例如:var text = 'ABC()';

我试过这个

if(text .indexOf('()') === -1)
{
  alert("not function");
} 

但我如何检查括号是否在最后。

7 个答案:

答案 0 :(得分:3)

您使用RegEx:

var one = "ABC.DEF";
var two = "ABC()";
var three = "()blank";

function check(string){

  // Matches: ABC.DEF  and Does not match: ABC. or .DEF
  if(/\w+\.\w+/.test(string)) 
    console.log("it is a function");

  // \(\) interpreted as (). Matches : ABC() ; Does not match: ()ABC or ABC()ABC
  else if(/\w+\(\)$/.test(string)) 
    console.log("it's an object");

  // Not found
  else
    console.log("something else")

}

check(one);    // it is a function
check(two);    // it's an object
check(three);  // something else

$检查匹配(())是否在该行的末尾 \w+count one or more occurrences of "A-Za-z0-9_"

JSBin

答案 1 :(得分:1)

 var a = "abc()";
        if (a[a.length-1] == ')' && a[a.length - 2] == '(') {
            alert("function");
        }

答案 2 :(得分:1)

http://jsfiddle.net/h9V2z/2/

String.prototype.endsWith = function(suffix) {
   return this.indexOf(suffix, this.length - suffix.length) !== -1;
};

if("ABC()".indexOf("()") > -1) {
    alert("it is a function");
}

if("ABC.DEF".indexOf(".") > -1) {
    alert("it is an object");
}

if("ABC()".endsWith("()")=== true) {
    alert("ends with ()");
}

if("ABC()".endsWith("()whatever")=== true) {
    alert("ends with ()");
}

答案 3 :(得分:1)

正则表达式^\w+\.\w+$将匹配由以下内容组成的字符串:

  • 字符串的开头;
  • 一系列“单词”字符;
  • 然后是一个句号;
  • 然后是另一个“单词”字符序列;和
  • 最后,字符串的结尾。

同样,正则表达式^\w+\(\)$将匹配由以下内容组成的字符串:

  • 字符串的开头;
  • 一系列“单词”字符;
  • 然后打开和关闭圆括号;和
  • 最后,字符串的结尾。

你可以将它包装在这样的函数中:

function check( text_to_match ){
    if(text_to_match.match(/^\w+\.\w+/)) 
        console.log("it is an object ");
    else if(text_to_match.match(/^\w+\(\)$/)) 
        console.log("it is an function");
}

答案 4 :(得分:0)

indexOf返回另一个字符串中字符串的位置。如果未找到,则返回-1:

var s = "foo";
alert(s.indexOf("oo") != -1);

答案 5 :(得分:0)

试试这个:

  if(text.substring(2) == "()")
  {
    alert("it is function");
  } 

答案 6 :(得分:0)

String.prototype.slice允许您使用负数来处理 String 的另一端。

'foobar'.slice(-2); // "ar"

所以

if (text.slice(-2) === '()') {
    // last two digits were "()"
}