var str="Hello World!";
var patt=/\x57/g;
var matched = str.match(patt);
document.write(matched.strike());
看来问题是matched.strike()
。matched
只有它有效。所以为什么?
var str="Hello World!";
var patt=/\x57/g;
var matched = str.match(patt);
document.write(matched.strike());
看来问题是matched.strike()
。matched
只有它有效。所以为什么?
该.strike()
方法对字符串进行操作,并且matched
是一个数组。您必须取消引用第一个匹配项才能看到正确的输出。
var str="Hello World!";
var patt=/\x57/g;
var matched = str.match(patt);
// Access first element of the matched array
document.write(matched[0].strike());
// Or via .pop() or .shift()
document.write(matched.pop().strike());
// or
document.write(matched.shift().strike());
// either returns "<strike>W</strike>"
该String.strike()
方法是非标准的,不应依赖于完整的浏览器支持。
(非常古老的)strike
方法是一种String
方法。RegExp.match
返回一个Array
不知道strike
方法的。
您的代码可以重写为:
var str = 'Hello World'.replace(/\x57/g,function(s){return s.strike();});
//=> Hello <strike>W</strike>orld