javascript - Javascript 问题我正在尝试从 textarea 中提取字符串
问题描述
这是我的代码:
var input = document.getElementById("input").value;
var string = input.toString();
var m = new RegExp('Stipendio' + '(.*?)' + 'D', 'gm');
var match = string.match(m);
我必须提取这个字符串:
助学金+ 一些文字 一些文字 一些文字 + D
嗨,我正在尝试从 textarea 中提取字符串,但我的 var 匹配始终为空!
我哪里错了?在另一个脚本中它完美地工作。
谢谢
解决方案
Stipendio + some text some text some text + D
正如您在问题中所述,我假设您的输入字符串是。
您的 RegExp 有问题(您的两个+
正在连接字符串,它们实际上不是 RegExp 的一部分,并且g
RegExp 标志在这里不适合)。
new RegExp(/Stipendio \+ (.*?) \+ D/m);
new RegExp(/Stipendio \+ (.*?) \+ D/, "m");
new RegExp("Stipendio \\+ (.*?) \\+ D", "m");
(需要双重转义\\
)
您也可以.match()
像这样直接使用它:string.match(/Stipendio \+ (.*?) \+ D/m)
hhh说你的使用.toString()
是多余的是对的。
总而言之,您的代码可能是:
const string = document.getElementById("input").value;
const m = new RegExp("Stipendio \\+ (.*?) \\+ D", "m");
const match_result = string.match(m);
console.log(match_result === null ? null : match_result[1]);
<textarea id="input">Stipendio + some text some text some text + D</textarea>
推荐阅读
- c++ - 仅当循环中更新的变量是本地的时才优化计算
- selenium - 在 Chrome 无头模式下执行 Selenium 测试
- java - JTable:从右到左对齐组件
- javascript - Angular 4 函数调用和异步调用问题
- apache-poi - 如何从 POI 4.0+ 版本的输入流中找出 excel 类型?
- java - 元素“fx:deploy”的前缀“fx”未绑定
- c++ - 在 QTableView/QTableWidget 中禁用滚动区域
- xml - 如何在 xml 根标签中添加命名空间
- c++ - 用于在 OpenCV 中检索像素矩形的双线性插值
- javascript - 无法点击自动完成搜索内容