regex Javascript检查字符串是否仅包含特定字符

cuxqih21  于 2023-02-20  发布在  Java
关注(0)|答案(6)|浏览(204)

如果一个给定的字符串只有一个特定的字符,但是这个字符出现了任意次,我想返回true。
示例:

// checking for 's'
'ssssss' -> true
'sss s'  -> false
'so'     -> false
7ivaypg9

7ivaypg91#

你看看这个

<div class="container">
    <form action="javascript:;" method="post" class="form-inline" id="form">
        <input type="text" id="message" class="input-medium" placeholder="Message" value="Hello, world!" />

        <button type="button" class="btn" data-action="insert">Show</button>

    </form>
</div>

JavaScript语言

var onloading = (function () {

            $('body').on('click', ':button', function () {
                var a = document.getElementById("message").value;
                var hasS = new RegExp("^[s\s]+$").test(a);
                alert(hasS);
            });

    }());

示例http://jsfiddle.net/kXLv5/40/

oknwwptz

oknwwptz2#

只需检查除空格和"s"之外是否还有其他内容,然后反转布尔值

var look = "s";
if(!new RegExp("[^\s" + look + "]").test(str)){
   // valid
}

或者检查它们是否是使用字符类和锚点^$时唯一存在的

var look = "s";
if(new RegExp("^[\s" + look + "]$").test(str)){
   // valid
}
nc1teljy

nc1teljy3#

用sssssnake做

'sss'.split('s').some(s => s) === true
'sssnake'.split('s').some(s => s) === false
dluptydi

dluptydi4#

首先,使用split将字符串转换为数组,

const letters ='string'.split('')

然后,使用Set数据结构并将数组作为参数传递给构造器。Set将只有唯一的值。

const unique = new Set(letters)

这个unique将只有unique字符,所以,当你传递sss时,它将只有一个s
最后,如果unique数组只包含一个元素,那么我们可以说这个字符串只包含相同的字母。

if (unique.size === 1) { // the string contains only the same letters

函数应该如下所示,

function isIdentile(string) {
    const letters = string.split('');
    const unique = new Set(letters)
    
    return unique.size === 1 ? true: false;
}
pw136qt2

pw136qt25#

使用RegEx:

const allOne = str => /^(.)\1*$/.test(str)
console.log(allOne(prompt("input")))

RegEx的解释:

^(.)\1*$   full RegEx
^          start of line
 (.)       any character, stored in group 1
    \1*    repeat group 1 zero or more times
       $   end of line
xu3bshqb

xu3bshqb6#

为此使用Set + Array,另外检查""空字符串边缘情况:

const hasOnlyGivenCharType = (str, char) => {
    const chars = Array.from(new Set(str))
    return !chars.some(c => c !== char) && !!chars.length 
}

console.log(hasOnlyGivenCharType('ssssss', 's')) //  -> true
console.log(hasOnlyGivenCharType('sss s', 's'))  //  -> false
console.log(hasOnlyGivenCharType('so', 's'))     //  -> false
console.log(hasOnlyGivenCharType('', 's'))       //  -> false

相关问题