使用jquery捕获字符之间的字符串
capture string between characters with jquery
我有一个变量,它包含"j_id0:j_id11:I:f:pb:d:MyFieldName.input"(不带引号)。
现在我想捕获"MyFieldName"。
我有这个:
var test = "j_id0:j_id11:i:f:pb:d:MyFieldName.input";
var testRE = test.match(":(.*).input");
console.log("old text: " + test);
console.log("new text: " + testRE[1]);
它输出这个:
old text: j_id0:j_id11:i:f:pb:d:MyFieldName.input
new text: j_id11:i:f:pb:d:MyFieldName
所以我需要的是告诉他,我想要最后一次出现":"answers".input"之间的所有内容,因为现在他找到了第一个":"并停在那里。
你知道我该怎么实现吗?
谢谢!
剩下的一个选项(大概还有很多其他选项)是:
var str = "j_id0:j_id11:i:f:pb:d:MyFieldName.input",
fieldName = str.substring(str.lastIndexOf(':') + 1, str.lastIndexOf('.'));
JS Fiddle演示。
参考文献:
- CCD_ 1
- CCD_ 2
此正则表达式将起作用:
.*:(.*)'.input
您可以在没有正则表达式的情况下尝试:
var test = "j_id0:j_id11:i:f:pb:d:MyFieldName.input";
var fieldName = test.split(':').pop().split('.')[0];
正则表达式的问题是它匹配第一个:
,然后捕获(.*)
直到.input
的所有内容。为了避免这种情况,您可以确保:
和.input
之间的捕获不能包含更多的:
。
这个正则表达式应该适用于您:
/:('w+)'.input/
Fiddle
var test = "j_id0:j_id11:i:f:pb:d:MyFieldName.input";
var testRE = test.match(/:('w+)'.input/)
console.log("old text: " + test);
console.log("new text: " + testRE[1]); //MyFieldName
组1将包含您的字段名称。
我认为以上内容应该适用于您,但如果您需要超过'w
个字符,您可以使用它来允许诸如"…:My.Field.Name.input"和捕获"My.Field.Name":
/:([^:]+)'.input/
相关文章:
- 是否有任何JavaScript UI组件可以显示字符串之间的差异
- jQuery在两个字符串标识符之间选择HTML
- 使用Javascript获取两个字符串之间的字符串数组
- Json和$scope的角度之间的差异$eval应用于JSON字符串时
- 如何使用JavaScript Regex替换字符串中双引号之间的文本
- 如何在jQuery中搜索两个字符之间的字符串
- 我可以在两个javascript文件之间传递一个字符串吗?
- 使用 JavaScript 中的正则表达式替换大文本中两个字符之间的每个出现的字符串
- 如何通过jQuery Ajax在HTML和PHP之间来回传输json字符串
- 如何在 javascript 中使用正则表达式在其他两个字符串之间找到一个字符串
- 删除两个字符串正则表达式之间的所有内容
- javascript:获取特定字符串之间的字符串
- 在第二次出现时提取方括号之间的字符串
- 如何在JavaScript中返回两个日期(当前日期和输入日期)之间的字符串差异
- Javascript Regex匹配两个字符串之间的子字符串,但子字符串可以包含DOT(.)
- 在jQuery或JavaScript中获取两个字符串之间的文本
- JavaScript函数,用于在全宽度和半宽度形式之间转换UTF8字符串
- Regex表达式,用于替换两个字符(包括字符)之间的字符串
- 如何删除两个单词之间的字符串
- 获取数字之间字符串的内容