2012-01-18 88 views
-1

我有一个数组的字符串如何使用JavaScript来解析字符串<markup>符号

strdata = "<mymarkup><P>Hello world!</P>" 

。因此对于包含上述值的strata[1][1]。如何使用子字符串函数检测<字符?

例如:

if (strata[1][1].substring(0,9) = "<mymarkup>") { 
    // etc... 
+1

在比较你应该有''===没有'=' – Znarkus 2012-01-18 17:17:22

+0

为了解析您的标记,我会建议寻找到[正则表达式](https://developer.mozilla.org/en/JavaScript/Guide/Regular_Expressions),尤其是替换函数。 – 2012-01-18 23:32:23

回答

0

如果你永远只能有对证相同的字符串。例如。 “<mymarkup>”最好使用maerics片段。

但是,如果你必须检查很多不同的字符串,它会变得麻烦。这里有一个可重用的例子来检查一个字符串是否以给定的前缀开头。

实用的风格:

function startsWith(str, starts){ 
    return str.length >= starts.length && str.substring(0, starts.length) === starts; 
} 

if(startsWith(strata[1][1], '<mymarkup>')){ 
// do something 
} 

面向对象的风格

String.prototype.startsWith = function(starts){ 
    return this.length >= starts.length && this.substring(0, starts.length) === starts; 
}; 

if(strata[1][1].startsWith('<mymarkup>')){ 
// do something 
} 
1

使用==(或更好===)算进行比较和你的例子会工作。 =运算符用于赋值,并且(几乎)总是不会产生您对条件期望的结果。

if (strdata[1][1].substring(0,10) === "<mymarkup>") { 
    // Ok... 

您还可以使用string indexOf() function检测<字符:

if (strdata[1][1].indexOf("<") > -1) { 
    // Ok... 
+0

宾果!非常感谢你。 – TJS101 2012-01-18 17:24:15