^
соответствует началу строки и $
соответствует концу строки. Измените ^.+$
на \w+
и он будет работать для значений, не содержащих символов. Сделайте это скобкой, чтобы зафиксировать значение - (\w+)
Обновление: чтобы соответствовать чему-либо между кавычками (при условии, что в котировке нет никаких котировок) используйте [^"]+
. Если в значении есть скрытые кавычки, это другой мяч. .+
будет работать в этом случае, но он будет медленнее из-за возврата. .+
первые совпадения до конца строки (потому что .
соответствует даже "
), а затем ищет "
и терпит неудачу. Затем он возвращается на одну позицию и ищет "
и снова сработает - и так далее, пока не найдет "
- если после value
появился еще один атрибут, вы получите matchTextHere" nextAttr="something
в качестве соответствия.
x = response.match(/<input name="example" type="hidden" value="([^"]+)" \/>/)[1]
При этом регулярное выражение не будет выполнено, если между любыми значениями атрибутов имеется дополнительное пространство. Разбор HTML с регулярным выражением не является хорошей идеей, - и если вы должны использовать регулярное выражение, вы можете разрешить дополнительные пробелы с помощью \s+
/<input\s+name="example"\s+type="hidden"\s+value="([^"]+)"\s*\/>/
я должны соответствовать буквы, символы и цифры. в основном мне нужно сопоставить все, что находится между цитатами. – sepiroth
использовать '[^"] + 'для захвата символов – Amarghosh
//возвращает всю строку, а не значение i хочу – sepiroth