我已经阅读了这里有关正则表达式的其他一些教程,但我仍然无法准确创建我需要的内容。
我有一个 onblur 函数可以做到这一点......
var x = $("#outputpathid").val();
var testwhitespace = new RegExp(/\s/g);
var testdoublequotes = new RegExp(/^\"|\"$/);
if (testwhitespace.test(x) && !testdoublequotes.test(x)) {
$("#outputPathDivWhitespace").dialog({
title: 'Output Path contains whitespace. Click the \'Close\' button to add quotes.',
width: 500,
modal: true,
resizable: false,
buttons: {
'Close': function() {
$("#outputpathid").val('"'+x+'"');
$(this).dialog('close');
}
}
});
}
...我希望该函数测试输入字段字符串 x 是否包含空格。如果是,还要检查是否有引号。如果没有引号并且包含空格,则在整个字符串周围添加引号。在字符串有开头或结尾引号之前,这可以正常工作。
我正在寻找某种类型的“and”运算符来替换 testdoublequotes var 中的管道。我发现我应该使用“?”,但无法让它工作。
有人可以帮忙吗?如果您提供答案,请准确解释您所做的事情,以便我能够理解发生了什么事。谢谢!
最佳答案
/^".*"$/
使用.*
来匹配双引号之间的.
匹配任意字符,*
匹配任意数量的后续whatever。因此 .*
匹配任意数量的任意字符。
顺便说一句,双引号不需要转义。我删除了反斜杠。
关于javascript - 空格和引号的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4586681/