Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.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 确保文本';s的双引号已关闭_Javascript_Angular - Fatal编程技术网

Javascript 确保文本';s的双引号已关闭

Javascript 确保文本';s的双引号已关闭,javascript,angular,Javascript,Angular,如何确保以双引号开头的用户输入文本也以双引号结尾?或者文本中有双引号,请确保其关闭,如: 测试“a错误 测试“a”正确 “测试”错误 “测试”正确 我在向上键事件上有一个委托函数,因此如果用户以“开头,则在双引号关闭之前不应运行该函数,否则我传递值的API会抛出错误,因为引号未关闭,但他们也可以输入不带引号的文本。 我试过regex,但有没有更好的方法 if (filterDescriptor.value && String(filterDescriptor.value).sta

如何确保以双引号开头的用户输入文本也以双引号结尾?或者文本中有双引号,请确保其关闭,如:

  • 测试“a
    错误
  • 测试“a”
    正确
  • “测试”
    错误
  • “测试”
    正确

  • 我在向上键事件上有一个委托函数,因此如果用户以
    开头,则在双引号关闭之前不应运行该函数,否则我传递值的API会抛出错误,因为引号未关闭,但他们也可以输入不带引号的文本。
    我试过regex,但有没有更好的方法

    if (filterDescriptor.value && String(filterDescriptor.value).startsWith('"') ) {
        if(!String(filterDescriptor.value).match('"([^\\"]|\\")*"')) {
            filterDescriptor.value = "";
        }
    }
    

    有一种简单的方法,您可以像这样检查最后一个字符:

    filterDescriptor.value.toString().charAt(filterDescriptor.value.toString().length-1);
    
    它将为您提供字符串中的最后一个字符,以便您可以对此进行验证


    为了验证字段是否为空并不好,最好向用户显示错误或警告。

    有一种简单的方法,您可以像这样检查最后一个字符:

    filterDescriptor.value.toString().charAt(filterDescriptor.value.toString().length-1);
    
    它将为您提供字符串中的最后一个字符,以便您可以对此进行验证


    为了验证字段是否为空并不好,最好向用户显示错误或警告。

    您可以这样做:

    if (filterDescriptor.value
        && String(filterDescriptor.value).startsWith('"')
        && String(filterDescriptor.value).slice(-1) === '"'
    ) {
        doSomething();
    }
    
    这些也是视光学元件:

    &&String(filterDescriptor.value).substr(-1)==''''”

    &&String(filterDescriptor.value).charAt(String(filterDescriptor.value).length-1)=='''”

    更新 要检查字符串是否包含两个引号,可以使用JavaScript函数尝试此方法:

    String(filterDescriptor.value)。包括(“”,String(filterDescriptor.value)。搜索(“”)+1)

    或使用正则表达式:


    RegExp('..'.*').test(filterDescriptor.value.toString())
    您可以这样做:

    if (filterDescriptor.value
        && String(filterDescriptor.value).startsWith('"')
        && String(filterDescriptor.value).slice(-1) === '"'
    ) {
        doSomething();
    }
    
    这些也是视光学元件:

    &&String(filterDescriptor.value).substr(-1)==''''”

    &&String(filterDescriptor.value).charAt(String(filterDescriptor.value).length-1)=='''”

    更新 要检查字符串是否包含两个引号,可以使用JavaScript函数尝试此方法:

    String(filterDescriptor.value)。包括(“”,String(filterDescriptor.value)。搜索(“”)+1)

    或使用正则表达式:


    RegExp('.*.'.*').test(filterDescriptor.value.toString())

    您不能手动修改用户输入的内容并在开始和结束时添加引号。如果必须将引用文本传递到APIC,您不能手动修改用户输入的内容并在开始和结束时添加引号。如果必须将引用文本传递到API`charAt(filterDescriptor.value.toString().length-2)``将返回前一个字符,而不是最后一个字符`charAt(filterDescriptor.value.toString().length-2)``将返回前一个字符,而不是最后一个字符这是一个很好的解决方案,但我突然想到,如果用户输入类似
    a“a
    ,它不会以
    所以这是第二个字符,在这种情况下我应该使用正则表达式吗?取决于您期望/需要的用户输入是什么。答案是这样的:用户必须以双引号开始,并且函数应该在双引号关闭时运行。如果标准是不同的,解决方案也可能是不同的。没错,你的回答对我的要求来说是完美的,我最初陈述过,但我只是添加了另一个要求,它只是意识到我必须考虑。这是一个很好的解决方案,但它只是打动了我,如果用户输入了像<代码>之类的“A < /代码>,它不是从<代码>开始的。所以这是第二个字符,在这种情况下我应该使用正则表达式吗?取决于您期望/需要的用户输入是什么。答案是这样的:用户必须以双引号开始,并且函数应该在双引号关闭时运行。如果标准是不同的,解决方案也可能是不同的。正确的,你的答案是完美的为我的要求,我最初说,但我刚才添加了另一个要求,只是意识到我必须考虑。