我有两个字符串:
var str1 = '8***8***';
var str2 = '898-8293';
如何用第二个字符串中的html元素包装第一个字符串中的数字,如下所示:
'<b>8</b>98-<b>8</b>293'
注意:并非所有'8'数字都被包裹。
[编辑]
感谢Soufiane Hassou和旅行者以下工作:
<script type="text/javascript">
var str1 = '8***8***';
var str2 = '898-8293';
var result = [];
var arr1 = str1.split('');
var arr2 = str2.split('');
for (var i = 0; i < arr2.length; i++) {
if (arr1[i] == arr2[i]) {
result.push('<b>' + arr2[i] + '</b>');
}
else {
result.push(arr2[i]);
}
}
var newStr = result.join('');
</script>
答案 0 :(得分:0)
var result='';
for(int i = 0; i < str2.length; i++) {
if(str2[i] == str1[i] {
result+='<b>' + str1[i] + '</b>';
}
else { result+=str2[i]; }
}
这是你想要做的吗?
答案 1 :(得分:0)
highlight_string = function(str, mask){
var result='';
str1 = mask.split("");
str2 = str.split("");
for(int i = 0; i < str2.length; i++) {
if((str1[i] == "*") || (str2[i] == str1[i])) {
result+='<b>' + str1[i] + '</b>';
}
else { result+=str2[i]; }
}
return result;
}
扩展Soufiane Hassou's answer,我认为这更接近您所寻找的目标。
答案 2 :(得分:0)
看起来你实际上要做的不是组合两个字符串,而是将str1中的正则表达式与str2中的值匹配。如果是这种情况,您可能希望将str1更改为正则表达式并针对它测试str2。像这样:
/[8]\d{2}[-][8]\d{3}/.test('898-8293');
//or
/[8]\d*[-][8]\d*/.test('898-8293');
//or
/[8].*[-][8].*/.test('898-8293');
//or
/[8].*[8].*/.test('898-8293');
答案 3 :(得分:0)
var str2 = '898-8293';
var str3 = str2.replace(/(\d{1})(\d{2})(-)(\d{1})(\d{3})/g, '<br>$1</br>$2$3<br>$4</br>$5');
alert(str3);
获胜。