Jump to content

Why is this regex failing?


terungwa

Recommended Posts

I am building a whitelist based bbcode sanitiser that allows only permitted bbcode element (the

 tag. All other bbcode elements  will be rejected regardless of what they are.

Also, this system should reject empty bbcode tag

This is the function below:

$val = 'This is a post with code, [code]cmmcxm[/code]';/* The negative lookahead regex contruct in the function below ensures all opening square brackets must be followed by this regex inside the lookahead(code\](.)+\[\/code\])*/function isSuspect($val) {	   // create a pattern to whitelist allowed bbcode phrase   $pattern = '/[(?!(code\](.)+\[\/code\]))/i';   // if one of the suspect phrases is found, reject                                                  \[(?!(code\]\[/code\]))   if (preg_match($pattern, $val))    {	return '<div id="login-alert" class="alert alert-danger col-sm-12">You can not post that, it appears you may have included banned words or code tags in your post.<br/>If you think this is not the case, kindly contact the portal administrator <a href="#"><img class="warning" src="assets/img/icons/mail-black.png" alt="" /> here</a></div>';   }}echo isSuspect($val);

This function is not validating $val = 'This is a post with code,

cmmcxm
'; and I was thinking it should.

 

I would appreciate inputs to finish this.

 

Thanks.

Link to comment
https://forums.phpfreaks.com/topic/292068-why-is-this-regex-failing/
Share on other sites

  • 1 month later...

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.