Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.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获取两个单词之间的文本_Javascript_Android_String_Titanium - Fatal编程技术网

使用javascript获取两个单词之间的文本

使用javascript获取两个单词之间的文本,javascript,android,string,titanium,Javascript,Android,String,Titanium,我有一个字符串,它看起来像一个XML文件,但实际上它只是一个保存在变量中的普通字符串 字符串如下所示: <m:properties> <d:user_id m:type="Edm.Int64">37</d:user_id> <d:organization_id m:type="Edm.Int64">1</d:organization_id> <d:nam

我有一个字符串,它看起来像一个XML文件,但实际上它只是一个保存在变量中的普通字符串

字符串如下所示:

<m:properties>
             <d:user_id m:type="Edm.Int64">37</d:user_id>
             <d:organization_id m:type="Edm.Int64">1</d:organization_id>
             <d:name>Test</d:name>
             <d:password>81dc9bdb52d04dc20036dbd8313ed055</d:password>
             <d:email_id>test1@cs.com</d:email_id>
             <d:user_type_id m:type="Edm.Int32">3</d:user_type_id>
             <d:is_valid m:type="Edm.Boolean">true</d:is_valid>
             <d:registration_date m:type="Edm.DateTime">2012-10-25T11:20:08</d:registration_date>
           </m:properties>

37
1.
试验
81dc9bdb52d04dc20036dbd8313ed055
test1@cs.com
3.
真的
2012-10-25T11:20:08
我需要在以下范围内提取文本:

  • 的内容是动态的


    如何使用javascript字符串处理函数提取所需的文本?

    假设您发布的所有字符串都存储在名为myCode的变量中,那么您需要从myCode中提取密码和电子邮件

    var passwd = myCode.substring(myCode.indexOf("<d:password>")+12,myCode.length-myCode.indexOf("</d:password>"));
    var email = myCode.substring(myCode.indexOf("<d:email_id>")+11,myCode.length-myCode.indexOf("</d:email_id>"));
    
    var passwd=myCode.substring(myCode.indexOf(“”+12,myCode.length myCode.indexOf(“”));
    var email=myCode.substring(myCode.indexOf(“”+11,myCode.length myCode.indexOf(“”));
    
    如果这个字符串是规则的(即,它的结构永远不会改变),那么你可以使用正则表达式,但是,它非常接近HTML/XML,它是不规则的,正则表达式和不规则不能同时使用。他们没有太多的共同点,如果我甚至建议一个正则表达式,我将失去所有的代表在向下投票风暴将随之而来。所以

    如果此字符串是规则字符串,则这是快速清洁的可能解决方案:

    String name = text.split(">")[6].split("<")[0];
    String password = text.split(">")[8].split("<")[0];
    

    String name=text.split(“>”[6]。split(“”[8]。split(“”+5)。split(“”+9)。split(一个非常简单的答案,不需要太在意计数:

    var password = text.split("<d:password>")[1].split("</d:password>")[0];
    var email = text.split("<d:email_id>")[1].split("</d:email_id>")[0];
    
    var password=text.split(“”[1]。split(“”[0];
    var email=text.split(“”[1]。split(“”[0];
    

    在这里,您必须确保的唯一一点是您没有多个相同的标记。如果存在多个标记,第一个索引将说明您希望出现哪一个。另一个仍然为0。

    为此,您应该真正使用XML解析器。为什么要使用字符串函数呢?和的长度可能不是静态的。因此,在此基础上进行计算可能不是个好主意!我知道,但至少它满足了这个特殊情况的要求,不是吗?是的,但这不是一个永久性的解决方案,因为它总是变化。字符串实际上是一个服务器响应。那么他们有没有办法回答这个特殊的复杂性呢?
    var password = text.split("<d:password>")[1].split("</d:password>")[0];
    var email = text.split("<d:email_id>")[1].split("</d:email_id>")[0];