假设我要获取11-22
(dd-dd
)第一个字符的字符串位置。
我还不清楚原型的语法,但我相信我已经接近了。
由于某种原因,如果我有11 - 22
,该代码现在可以正常工作,但是如果没有这些空格,它将无法正常工作。
此外,我想排除在-
的任一侧具有两个以上数字的所有匹配项。
我不想只匹配1111-2222
的{{1}}。
11-22
function myFunction() {
var str = 'For more information, 11-22 1111-2222';
var re = /\d+\d+\ +[-]+ \d+\d/i;
document.getElementById("result").innerHTML=(str.search(re));
}
答案 0 :(得分:1)
由于看起来空格是可选的,因此应使用*
(零个或多个出现)对其进行量化。如果您只需要两位数,则使用\d\d
而不是用+
来量化两位数,当它们彼此相邻时这没有多大意义:
function myFunction(str) {
console.log(str.search(/\b\d\d *- *\d\d/));
}
myFunction('For more information, 11-22 1111-2222');
myFunction('For more information, 11 - 22 1111-2222');
myFunction('foobar, 11 - 22 1111-2222');
myFunction('1111-2222 11 - 22');
答案 1 :(得分:1)
答案 2 :(得分:0)
如果您只想检查特定字符串的位置,则也可以使用str.indexOf(your pattern)
进行。
检查以下代码:
function myFunction() {
var str = 'For more information, 11-22 1111-2222';
var re = "11-22";
document.getElementById("result").innerHTML=(str.indexOf(re));
}
<body onload="myFunction()">
<p>result: <span id="result"></span></p>