正则表达式's结尾的备选项
Alternative in regular expression's ending
我有以下DOM结构:
<form>
<input type="text" id="a">
<button>Submit</button>
</form>
或:
<form>
<input type="text" id="a">
</form>
哪一个取决于用户做了什么,它是动态创建的
我希望能够添加另一个输入正下方的前一个(它可以不存在,是第一个)。要做到这一点,我想要得到所有文本直到我添加新输入的地方。我怎么能得到使用正则表达式的文本?
我试了如下:
'(.*?)[<button.*?>Submit<'/button><'/form>|<'/form>]'
但是它不起作用,因为它显示空字符串作为结果。
var afterRegex = new RegExp('(.*?)[<button.*?>Submit<'/button><'/form>|<'/form>]', 'i');
var appendAfter = $(".downloadCode textarea").val().match(afterRegex)[1];
alert(appendAfter);
我对你的代码有点困惑,但是,根据你所说的(并且你已经用jQuery标记了你的问题),我认为你可以完成你试图用这段代码做的事情:
var $newInput = **CREATE_YOUR_NEW_INPUT_ELEMENT_HERE**;
var $form = $("form");
var $lastInput = $form.find("input:last");
// no inputs, make the new input the first element in the form
if ($lastInput.length < 1) {
$form.prepend($newInput);
}
// at least on existing input, add the new input after the last one
else {
$lastInput.after($newInput);
}
您不应该使用Regexp解析HTML。不,我是认真的。
话虽如此,多字符替代的正确语法是(?:alternativeA|alternativeB)
:
(.*?)(?:<button.*?>Submit<'/button><'/form>|<'/form>)
注意,如果中间有空白字符,这将不起作用。这里还有一个不使用regexp的原因。
相关文章:
- 我的单元测试选项是什么
- 如何更改bigquery API中的计费层选项
- 使用Javascript获取所选选项ID
- Selectize.js:如何对整数值的选项进行排序
- 通过js在新选项卡中有条件地打开url
- 按照选项卡索引的顺序循环一个jQuery选择
- 如何在使用selectBoxIt JQuery插件时检测选项更改
- 无法在Ionic select中预先选择最后一个选项
- 如何在选项卡上定义属性'的主窗口对象
- 为什么grunt contrib connect的中间件选项的第三个参数是未定义的
- 使用此选项选择父类内部的类
- CKeditor:更改对话框中的默认选择选项
- JQuery覆盖不更改单选选项
- 活动选项卡's源代码-获取变量s值
- 绑定时将Parsley minlength消息作为选项传递时,未对其进行自定义
- 如何从选择框中的选项中获取属性值
- 如何在从多选下拉列表中选择选项值时动态生成文本框
- React Native通过Navigator将用户输入数据传递到选项卡栏IOS中的组件
- 如何从外部页面激活非默认引导选项卡
- 正则表达式's结尾的备选项