jQuery变量设置为正则表达式
jQuery variable-setting for regex
按预期记录10个textarea
元素中的每个元素的值:
$('.container').each(function() {
var textA = $('textarea', this).val();
console.log(textA)
});
这个正则表达式在控制台工作得很好:
"https://hi.com/hey junk nothing https://hi.com/there".match(/https:'/'/hi'.com'/[A-Za-z_]{1,15}/ig);
I get back: ["https://hi.com/hey", "https://hi.com/there"]
但是当我尝试这个时:
$('.container').each(function() {
var textA = $('textarea', this).val();
var matches = textA.match(/https:'/'/hi'.com'/[A-Za-z_]{1,15}/ig);
console.log(matches)
});
我得到Uncaught TypeError: Cannot read property 'match' of undefined
为什么是undefined
?是不是因为进入match
的Type
没有正确申报?如有,我应如何申报,以便"看到"?
要回答这个问题:您需要检查textarea
是否存在于.container
中。您可以使用.length > 0
:
$('.container').each(function() {
var textArea = $('textarea', this); // Changed here
if (textArea.length > 0) { // and here
var textA = textArea.val();
var matches = textA.match(/https:'/'/hi'.com'/[A-Za-z_]{1,15}/ig);
console.log(matches);
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
<textarea name="mytextarea" id="" cols="30" rows="10">
https://hi.com/new-url
More
lines
https://hi.com/last-url
</textarea>
</div>
<div class="container">
Empty one with no textarea
</div>
相关文章:
- java.net和javascript之间正则表达式的差异
- Grunt匹配正则表达式
- 不同浏览器中的空白字符正则表达式行为
- 正则表达式在字符串中找到base64
- 子字符串/正则表达式以获取字符串中保存的 SRC 值
- 调用正则表达式匹配的函数
- 使用正则表达式评估电子邮件地址时出现性能问题
- 使用正则表达式将输入格式设置为单字符逗号、单字符逗号等
- 使用jquery验证器插件为十进制数设置正则表达式
- 设置正则表达式以测试包含 HTML 标记的输入文本
- 如何使用 JS 正则表达式将文本块中的每个最后一个字母都设置为粗体
- 要解析的JavaScript正则表达式:设置正确名称为X=值#注释
- 将输入光标设置为javascript正则表达式之后的正确位置
- 使用正则表达式设置带减号的货币格式
- 设置自定义HTML5有效性消息属性忽略模式正则表达式
- jQuery变量设置为正则表达式
- 用于自定义设置的JavaScript正则表达式
- 使用正则表达式设置字符限制
- 我可以为对象设置正则表达式吗's方法/属性选择器
- 设置正则表达式游标