这是我目前所得到的:
var source = '>R$11111</b>';
var price = source.match(/[^R$]\d+/);
“来源”有点像 innerHTML 插入,但我已经记下了。
问题是“价格”必须介于 'R$'
之间和 '</b>'
,无论它们之间是什么,从 1 到无穷大。我在那里得到的东西会起作用,但是当我取出 'R$'
时或 '</b>'
从中,它仍然可以找到值和一个额外的字符。
所以基本上我只需要帮助来制作它所以它只会获取 'R$'
之间的值和 '</b>'
当两者都存在时。
***OR 从 R$ 到字符串的末尾。但 R$ 和价格之间没有空格。
最佳答案
嗯,[^R$]
匹配“恰好一个既不是 R
也不是 $
的字符”,所以这可能不是你想要什么。
var price = source.match(/R\$(\d+)/)[1];
或者如果价格可能不是全数字:
var price = source.match(/R\$(.*?)<\/b>/)[1];
重要的是你关心的部分周围的括号,这会导致匹配括号之间内容的任何文本作为数组的第二个元素包含在匹配的返回值中(第一个是匹配整个正则表达式的文本)。
如果字符串可能与正则表达式不匹配,那么最好分两步进行:
var match = source.match(/whichever/);
if (match) {
price = match[1];
} else {
console.log("no price found.");
}
关于Javascript 字符串匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10747570/