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 < /代码>,它不是从<代码>开始的。所以这是第二个字符,在这种情况下我应该使用正则表达式吗?取决于您期望/需要的用户输入是什么。答案是这样的:用户必须以双引号开始,并且函数应该在双引号关闭时运行。如果标准是不同的,解决方案也可能是不同的。正确的,你的答案是完美的为我的要求,我最初说,但我刚才添加了另一个要求,只是意识到我必须考虑。