在所有开启和关闭双引号对之间测试/字符

时间:2015-07-26 06:28:06

标签: javascript regex

我试图测试/字符是否在JavaScript字符串中的双引号内。例如,"hello/world"将匹配,而hello/world/"How are you"将失败,因为它在双引号之外。我一直在四处寻找,但却没有找到答案。

此外,"hello"world/how"are you"应该失败,因为打开和关闭双引号不会封装/,从左到右确定。重申一下,我想匹配在/ strong /之间关闭和打开双引号的所有实例,这与Alternative to regex: match all instances not inside quotes

不同

4 个答案:

答案 0 :(得分:2)

我认为你可以使用它:

/^(((\"[^"\/]*\")\/?)|([^"\/]*\/?))+$/igm

/^(\"[^"\/]*\"|[^"\/]*\/?)+$/im

[Regex Demo]

答案 1 :(得分:-1)

str = 'hello/world"how are you"';

q1 = str.indexOf('"');
q2 = str.lastindexof('"');
slsh = str.indexOf("/");
if( slsh > q1 && slsh <q2){

    dosomething;
}

答案 2 :(得分:-1)

如果不使用正则表达式,算法就像是......请自己测试一下!

 Startquotehit = false
    insidequote = false
    Gotaslash = false
    Wantedresult = false

    For x to.. String.length
    {
    If x == quote
    {
     Startquotehit = true;
     Insidequote = !insidequote;
     If gotaslash == true && insidequote
         Wantedresult = true;
    }     

    If x == slash
    {
      If startquotehit
         Gotaslash = true;
    }
 }

Wantedresult会告诉你是否引用了斜线&#39;在引号内&#39;掩盖你的错误情景&#34; ....&#34; ... / ...&#34; ...&#34;

答案 3 :(得分:-2)

/".*\/.*"/.test(your_string)

请参阅JavaScript正则表达式'test方法。