如何确保用户输入的以双引号开头的文本也以双引号结尾?或者它在文本中有双引号,请确保它是闭合的,例如:
测试“a
错误测试“a”
正确“测试”
错误“测试”
正确
我在按键事件上有一个委托(delegate)函数,因此如果用户以 "
开头,则在双引号关闭之前不应运行该函数,否则我传递值的 API抛出错误,因为引号未关闭,但他们也可以输入不带引号的文本。
我已经尝试过正则表达式,但是有更好的方法吗?
if (filterDescriptor.value && String(filterDescriptor.value).startsWith('"') ) {
if(!String(filterDescriptor.value).match('"([^\\"]|\\")*"')) {
filterDescriptor.value = "";
}
}
最佳答案
你可以这样做:
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).includes('"',String(filterDescriptor.value).search('"') + 1)
或者使用正则表达式:
RegExp('.*".*".*').test(filterDescriptor.value.toString())
关于javascript - 确保文本的双引号已闭合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58736152/