Javascript 使用jQuery查找两个引号之间的文本

Javascript 使用jQuery查找两个引号之间的文本,javascript,jquery,parsing,Javascript,Jquery,Parsing,好的,我有一小段文字: function onfocus(event) { if ($(this).val() == "Some Arbitrary Text") {$(this).val("");} } 使用jQuery或JavaScript,我希望找到“任意文本”。此文本块是常量,但“任意文本”除外。理想情况下,我想要一种不使用复杂循环和正则表达式来解析它的方法 为了帮助澄清: 文本是javascript这一事实与此无关。把它想象成我正在解析的文本。“任意文本”可以是任何内容,我正在尝

好的,我有一小段文字:

function onfocus(event) {
  if ($(this).val() == "Some Arbitrary Text") {$(this).val("");}
}
使用jQuery或JavaScript,我希望找到“任意文本”。此文本块是常量,但“任意文本”除外。理想情况下,我想要一种不使用复杂循环和正则表达式来解析它的方法

为了帮助澄清:
文本是javascript这一事实与此无关。把它想象成我正在解析的文本。“任意文本”可以是任何内容,我正在尝试查找两个引号之间的文本。

您的问题有点让人困惑-您是否在查看大字符串是否包含小字符串?如果是,请使用如下功能:

function onfocus(event) {
    if ($(this).val().indexOf("Some Arbitrary Text") > 0) {
        $(this).val("");
    }
}

并不是说我完全理解这个问题,但也许

var s = 'foo "quoted" bar';
var m = s.match(/"(.*?)"/);
alert(m[1]); // m[1] = quoted

当然,没有regexp也可以这样做,但这毫无意义-这就是regexp的作用

如果我正确解释了您的问题,您只需要一个正则表达式:

astring = "oh hai I'm a string my name is \"Arbitrary Text\"";
results = astring.match(/"[\d\w\s]*"/g);
regexp
/“[\d\w\s]*”/
将匹配出现在倒逗号之间的任何数字、单词或空白字符。后缀
g
表示搜索是全局搜索,并返回所有匹配项的数组。删除g只会返回第一个结果

在本例中,
match()
返回一个单成员数组:
['“任意文本”]
。是的,它包括倒逗号。要删除它们:
string=string.replace(/“/g”,”);

如果在文本中找不到匹配项,则返回Null

编辑

既然我们理解了你这样做的理由,我不得不反对这种方法

有多种方法可以将表单输入的文本与其默认值进行比较。例如,您可以将默认值存储在全局JS变量中,或者作为html元素本身的属性


这并不是说你的方法是“错误的”,但这段代码有一个严重的问题。

我想你实际上是在一个输入元素中显示某种“invite”消息,例如:“把你的名字放在这里。”“在文本输入中。当然,您希望此邀请在用户关注该输入时立即消失,如果用户没有在输入中添加任何内容,则再次出现。意图是正确的,但你的方法有点肮脏和不可靠。我会改用变量

由于您的输入是动态添加的,只需在html注入之后将变量添加到