JS如何将用户输入的一段文字中含有手机号的文字颜色变为红色

如何用JS代码来检测用户输入的信息是否包含手机号码,若里面有手机号,则只是手机号颜色变色红色,其他文字颜色不变,若输入的信息不包含手机号,就默认显示为黑色

感谢~

正则判断 然后截取,可以看下我写的
https://blog.csdn.net/weixin_53412458/article/details/123662866?spm=1001.2014.3001.5502

img

img


<div id="d1" style="color:#007AFF">这是有号码的413888888882文字</div>
        <!--<div id="d1" style="color:#007AFF">这是没有号码的423888888882文字</div>-->
        <script type="text/javascript">
            abc()
            function abc() {
                var character = document.getElementById("d1").innerHTML;
                var str = character.match(/1[3,4,5,6,7,8,9]{1}[0-9]{9}/g)
                if(str){
                    var arr = character.split(str)
                    var html = `${arr[0]}<span style="color:#f00">${str}</span>${arr[1]}`
                    document.getElementById('d1').innerHTML = html
                }else{
                    document.getElementById('d1').style.color = '#000'
                }
            }
        </script>

【温馨提示:若能帮到您,望给个采纳该答案,谢谢!】
1、效果

img

2、代码如下

<textarea id="textarea" style="width:300px;height:80px;">手机号码A是:13600166000,另一个手机号码B是:13600166002</textarea>
<button id="button">显示</button>
<div id="div" style="width:300px;height:80px;">

</div>

<script type="text/javascript">

    document.getElementById("button").onclick = function () {

        var content = document.getElementById('textarea').value;
        var myRe = /(1[3456789][\d]{9})/g;
        var myArray = content.match(myRe);
        for (var i = 0; i < myArray.length; i++) {
            var phone = myArray[i];
            content = content.replace(new RegExp(phone, 'gm'), '<span style="color:red;">' + phone + '</span>')
        }
        document.getElementById('div').innerHTML = content;
    }

</script>